两两交换链表中的节点
js
var swapPairs = function(head) {
// 头部虚拟节点,next指针指向头节点
let dummyHead = new ListNode()
dummyHead.next = head
// temp指针
let temp = dummyHead
// 有两个存在的节点才进行交换
while(temp.next && temp.next.next) {
let node1 = temp.next // temp指针后的节点1
let node2 = temp.next.next // temp指针后的节点2
temp.next = node2 // 1.先将temp的next指针指向node2
node1.next = node2.next // 2.再把节点1的next指向节点2的next
node2.next = node1 // 3.最后把节点2的next指向节点1完成本轮交换
// temp指针移动到下一次交换组的前一个节点
temp = node1
}
return dummyHead.next // 返回头节点
}