给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

思路

  1. 添加一个 dummyHead 指向链表头部以避免特殊边界情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var swapPairs = function (head) {
const dummyHead = new ListNode()
dummyHead.next = head
let cur = dummyHead
while (cur.next && cur.next.next) {
const node1 = cur.next
const node2 = node1.next
node1.next = node2.next
node2.next = node1
cur.next = node2
cur = node1
}
return dummyHead.next
}