题目描述:
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)
思路:
1、初始化一个头结点挂在head前面。
2、设置一快一慢双指针,快指针指向头结点后第二个节点,慢指针指向头结点后第一个节点。
3、交换快慢指针,可以画图演示,很容易想明白。
4、把快慢指针都往后移动两个节点。
5、返回结果。
class Solution:
def swapPairs(self, head: ListNode) -> ListNode:
temp = dummy = ListNode(0, head)
while temp.next and temp.next.next:
Node1 = temp.next
Node2 = temp.next.next
Node1.next = Node2.next
Node2.next = Node1
temp.next = Node2
temp = temp.next.next
return dummy.next
执行结果: