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

输入:head = [1,2,3,4]
输出:[2,1,4,3]
递归解法
var swapPairs = function(head) {
if(!head || !head.next) return head
let newHead = head.next // 保留第二个节点
head.next = swapPairs(head.next.next) // 将第一个节点的下个节点指向
newHead.next = head // 第二个节点改为指向第一个
return newHead
};