将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 **示例:** ```js 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 ``` 附leetcode地址:[leetcode](https://leetcode-cn.com/problems/merge-two-sorted-lists/solution/tu-jie-leetcodehe-bing-liang-ge-you-xu-lian-biao-b/)
Activity
sisterAn commentedon Apr 9, 2020
解答:
确定解题的数据结构: 单链表
确定解题思路: 从链表头开始比较,
l1与l2是有序递增的,所以比较l1.val与l2.val的较小值就是合并后链表的最小值,次小值就是小节点的next.val与大节点的val比较的较小值,依次递归,直到递归到l1l2均为null画图实现: 画图帮助理解一下
确定边界条件: 当递归到任意链表为
null,直接将next指向另外的链表即可,不需要继续递归了代码实现:
liwuhou commentedon Apr 11, 2020
我这个就稍微麻烦了点
13001920223 commentedon Apr 23, 2020
fengmiaosen commentedon Jun 16, 2020
xyj626553989 commentedon Jul 3, 2020
Been101 commentedon Jul 15, 2020
qianlongo commentedon Aug 15, 2020
gloomyKevin commentedon Sep 8, 2020
wufeicris commentedon Nov 8, 2020
这个图片是用什么画图工具做出来的?
AnranS commentedon Nov 16, 2020
azl397985856 commentedon Mar 3, 2021
题目地址(21. 合并两个有序链表)
https://leetcode-cn.com/problems/merge-two-sorted-lists
题目描述
前置知识
公司
公司
思路
本题可以使用递归来解,将两个链表头部较小的一个与剩下的元素合并,并返回排好序的链表头,当两条链表中的一条为空时终止递归。
关键点
代码
CPP Code:
JS Code:
复杂度分析
M、N 是两条链表 l1、l2 的长度
扩展
大家对此有何看法,欢迎给我留言,我有时间都会一一查看回答。更多算法套路可以访问我的 LeetCode 题解仓库:https://github.com/azl397985856/leetcode 。 目前已经 37K star 啦。
大家也可以关注我的公众号《力扣加加》带你啃下算法这块硬骨头。
in-vane commentedon Mar 25, 2021
xllpiupiu commentedon Oct 1, 2021
fengjinlong commentedon Dec 4, 2022