题解 | 两两交换链表中的结点
两两交换链表中的结点
https://www.nowcoder.com/practice/1aabdaea8c7e4874bb1d3eda2c7f0042
from os import pread
class Solution:
def swapPairs(self, head: ListNode) -> ListNode:
# write code here
dummy = ListNode(0)
dummy.next = head
prev = dummy
while prev.next and prev.next.next:
# 定义当前要交换的两个节点
first = prev.next
second = first.next
# 三步指针交换
prev.next = second # prev指向第二个节点
first.next = second.next # 第一个节点指向第三个节点(或None)
second.next = first # 第二个节点指向第一个节点
# 移动prev到下一对的前一个位置(即刚交换完的第一个节点)
prev = first
return dummy.next
查看4道真题和解析