文章目录
leetcode 24: 两两交换链表中的节点 (python)
注:仅供学习,并非商用
思路
鉴于需要两两交换,所以我们需要三个指针pre、mid、lst,分别指向 需要交换的两个节点的前一个节点、要交换的第一个节点、要交换的第二个节点。
具体代码如下:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def swapPairs(self, head: ListNode) -> ListNode:
# 创建一个虚拟头节点
temp = ListNode(0, head)
pre = temp
mid = temp.next
while mid != None and mid.next != None:
lst = mid.next
# 对节点进行交换
mid.next = lst.next
lst.next = mid
pre.next = lst
# 更新pre、mid
pre = mid
mid = mid.next
return temp.next