leetcode24-两两交换链表图解

Posted 小龙虾爱大龙虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode24-两两交换链表图解相关的知识,希望对你有一定的参考价值。

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

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

示例:

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

先添加一个空表头,然后再交换,交换过程如下:

 

 

 Python代码如下:

class Solution(object):
    def swapPairs(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if head==None:
            return None
        Thead=ListNode(-1)
        Thead.next=head #创建空表头
        c=Thead#创建头指针
        while c.next and c.next.next:
            a=c.next 
            b=c.next.next
            c.next=b  #第一步
            a.next=b.next  #第二步
            b.next=a       #第三步
            c=c.next.next#指针移动两位
        return Thead.next  #返回链

以上是关于leetcode24-两两交换链表图解的主要内容,如果未能解决你的问题,请参考以下文章

图解 LeetCode24:交换吧,链表!

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

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

[leetcode] 24. 两两交换链表中的节点

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

leetcode 24.两两交换链表中的节点 思路详解附代码