1

LeetCode 24.两两交换链表中的节点

大家好,我是灵魂画师--茄子。技术水平一般,喜欢画画。

开始今天的正题。

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

给定 1->2->3->4, 你应该返回 2->1->4->3.
  1. 递归解法

图解:
图解

思路: 两两交换位置

  • 1.先把当前节点的下一个节点指向当前节点(head.next.next = head)
  • 2.当前节点指向 两两反转后的节点。
  • 3.终止条件:head为null 或者只剩下一个节点head.next = null。
let swapPairs =  (head) => {
    if (!head || !head.next) {
        return head
    }
    let result = head.next
    head.next = swapPairs(head.next.next)
    result.next = head
    return result

};

以上就是我的思路以及解法了,希望大家喜欢我画的图解,我会继续努力的ヾ(◍°∇°◍)ノ゙。(点个赞把我带走吧~~)


灵魂画师_茄子
11 声望4 粉丝