题目:两两交换链表中的节点
思路(具体见下图):
1.头节点会变化,所以要增加虚拟头节点p
2.两两交换,1,2,3,4的顺序不能发生变化,先执行1和3 会产生环,陷入死循环。
# 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:
# 虚拟头结点,永远是新链表的头节点,不会变化
dummy = ListNode(-1)
dummy.next = head
p = dummy
# 若p后面有一对节点
while p.next and p.next.next:
# 保存2个结点的指针
first = p.next; second = first.next
# 执行1,2,3 *** 作
p.next = second
first.next = second.next
second.next = first
# 执行后面2个结点
p = first
return dummy.next
参考链接
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)