# [24] 两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例:
给定 1->2->3->4, 你应该返回 2->1->4->3.
对链表交换相邻节点的问题,我们还是按照普通对链表遍历的处理即可(即先加头结点遍历直到节点判空结束)。
因为是节点交换,因此需要交换的两个节点都必须有值,因此,当cur或者next任何一个没有值就可以结束循环了。
var swapPairs = function(head) {
const dummy = new ListNode(null);
dummy.next = head;
let pre = dummy;
while (pre.next && pre.next.next) {
const cur = pre.next;
const next = cur.next;
pre.next = next;
cur.next = next.next;
next.next = cur;
pre = cur;
}
return dummy.next;
};
function ListNode(val) {
this.val = val;
this.next = null;
}