给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
没太大难度,仅仅需要模拟操作即可,直接交换
注意点为:本方法需要主要链接时机,引入了一个temp指针指向上一对交换节点的靠后的那个节点,再指向现在这对需要交换的节点(否则会断裂)
当然本质上和随想录的三个指针控制的方法相同
problems/0024.两两交换链表中的节点.md · programmercarl/leetcode-master(代码随想录出品) - Gitee.com
只是没用virtual_head显得有点啰嗦
结束条件为,节点是否成对,不成对则结束即可
1 class Solution: 2 def swapPairs(self, head: ListNode) -> ListNode: 3 if head is None: 4 return None 5 if head.next is None: 6 return head 7 new_head = head.next 8 p = head 9 temp_p = p 10 while p is not None and p.next is not None: 11 q = p.next 12 temp_p.next = q 13 p.next = q.next 14 q.next = p 15 temp_p = p 16 p = p.next 17 return new_head
浙公网安备 33010602011771号