LeetCode 24.两两交换链表中的节点
大家好,我是灵魂画师--茄子。技术水平一般,喜欢画画。
开始今天的正题。
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
给定 1->2->3->4, 你应该返回 2->1->4->3.
- 递归解法
图解:
思路: 两两交换位置
- 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
};
以上就是我的思路以及解法了,希望大家喜欢我画的图解,我会继续努力的ヾ(◍°∇°◍)ノ゙。(点个赞把我带走吧~~)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。