<>
题目
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例:
给定1->2->3->4
, 你应该返回2->1->4->3
.
我的思路
class Solution(object): def swapPairs(self, head): """ 1.定义一个虚拟头结点 2.(-1,1,2,3, ..)依次定义为pre , cur , nxt ,nxtcur , .. 3.pre.next -> nxt 4.nxt.next -> cur 5.cur.next -> nxtcur """ if not head or not head.next:return head node = ListNode(-1) node.next = head pre = node cur = node.next while cur: if not cur.next : break nxt = cur.next nxtcur = cur.next.next pre.next = nxt nxt.next = cur cur.next = nxtcur pre = cur cur = nxtcur return node.next
题解
https://leetcode-cn.com/problems/swap-nodes-in-pairs/solution/di-gui-2chong-fei-di-gui-by-heng-29/