跳至主要內容

两两交换链表中的节点

Mr.He小于 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
};