美文网首页
leetcode-24-两两交换链表中的节点

leetcode-24-两两交换链表中的节点

作者: 葫芦葫芦快显灵 | 来源:发表于2019-07-11 01:35 被阅读0次

题目:
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例:

给定 1->2->3->4, 你应该返回 2->1->4->3

思路:

  1. 生成一个链表 tmp, tmp.next 指向head
  2. 需要三个指针 分别记录head.next, head.next.next, 和head的前一个指针
  3. 将这三个指针翻转\

code:

#ruby
def swap_pairs(head)
    pre, pre.next = ListNode.new(0), head
    tmp = pre
    while pre.next && pre.next.next
      a = pre.next
      b = a.next
      pre.next, b.next, a.next = b, a, b.next
      pre = a
    end
    tmp.next
end
#python3
class Solution:
    def swapPairs(self, head: ListNode) -> ListNode:
        pre, pre.next = self, head
        while pre.next and pre.next.next:
            a = pre.next
            b = a.next
            pre.next, b.next, a.next = b, a, b.next
            pre = a
        
        return self.next

相关文章

  • LeetCode-24 两两交换链表中的节点

    题目:24. 两两交换链表中的节点 难度:中等 分类:链表 解决方案:节点的交换 今天我们学习第24题两两交换链表...

  • LeetCode 24. 两两交换链表中的节点

    24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点...

  • Leetcode 24 两两交换链表中的节点

    两两交换链表中的节点 题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内...

  • leetCode进阶算法题+解析(四)

    两两交换链表中的节点 题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部...

  • Swift - LeetCode - 两两交换链表中的节点

    题目 两两交换链表中的节点 问题: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 说明: 你的算法只...

  • leetcode-24-两两交换链表中的节点

    题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的...

  • LeetCode-24-两两交换链表中的节点

    给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点...

  • 【LeetCode】24.两两交换链表中的节点

    题目描述 24.两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的...

  • 链表五:链表的反转

    题目地址: 两两交换链表中的节点题目描述: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只...

  • 24. 两两交换链表中的节点

    24.两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 示例: 给定1->2->3...

网友评论

      本文标题:leetcode-24-两两交换链表中的节点

      本文链接:https://www.haomeiwen.com/subject/waylkctx.html