var swapPairs = function(head) {
let sentinel = new ListNode();
sentinel.next = head;
let curr = sentinel;
while(curr.next != null && curr.next.next != null){
let temp1 = curr.next;//第一个节点
let temp2 = curr.next.next;//第二个节点
let temp3 = curr.next.next;//第三个节点
curr.next = temp2;//curr为哨兵,让链表第一个节点为原链表第二个节点
temp2.next = temp1;//原链表第二个节点指向原链表第一个节点
temp1.next = temp3;//现链表第二个节点指向原链表第三个节点,至此完成交换
curr = temp1;//更新curr到下一组要交换的第一个节点的前一个节点,即为一开始创建哨兵的意义
}
//返回哨兵的下一个,即交换后的链表的第一个节点
return sentinel.next;
}
两两交换链表中的节点
最新推荐文章于 2024-10-17 09:40:47 发布