首页 > 试题广场 >

合并有序链表

[编程题]合并有序链表
  • 热度指数:126418 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的,且合并后新链表依然有序。

数据范围:链表长度 ,链表中的值
要求:空间复杂度 ,时间复杂度
示例1

输入

{1},{2}

输出

{1,2}
示例2

输入

{2},{1}

输出

{1,2}
示例3

输入

{1,2,3},{}

输出

{1,2,3}

说明:本题目包含复杂数据结构ListNode,点此查看相关信息
头像 漫漫云天自翱翔
发表于 2021-07-19 18:56:15
精华题解 题解一创建辅助头节点图示: 复杂度分析:时间复杂度:O(M+N)),最差为轮流插入两个链表,最终需要遍历完两个链表,所以为O(M+N)) 空间复杂度:O(1),只使用了有限常数个变量; 实现如下: class Solution { public: /** * * @pa 展开全文
头像 蒙牛麦片
发表于 2021-07-16 18:11:38
精华题解 NC33* 合并有序链表 题意分析: 将两个有序的链表合并 题解一: 我们新建4个指针,dummy用于返回最后结果,p用于遍历链表1,q用于遍历链表2,r用于指示生成的新链表末端。 举个如下例子: 开始拿指针p与指针q比较,指针p所指元素比较小,那么将r->next = p,p = p- 展开全文
头像 ajaj
发表于 2021-07-13 17:29:59
精华题解 思路: 从题中给出的有效信息: 两个有序的链表 合并后新链表有序 故此两个有序的链表,合并两个链表可以使用 递归 和 双指针 的方式来解答 方法一:递归 具体做法:如果l1节点值比l2小,将 l1的下一个节点 指向 l1.next 和 l2 合并后的头结点;l1节点值比l2小同理 import 展开全文
头像 城志
发表于 2020-02-19 09:12:57
1. 先处理头结点 1.1 分析 把两个链表中较小的头作为新链表的头 依次比较两个链表未合并部分的头,较小者插入新表的尾 处理未走到尽头的链表1.2 代码 public class Solution { public ListNode mergeTwoLists(ListNode l1, Li 展开全文
头像 麻豆出品
发表于 2020-09-06 00:31:54
跟合并有序数组差不多套路,就是数据结构麻烦些。思路:先选出第一个节点,然后遍历两个链表,把小的作为当前节点的下一个节点,一直到其中一个链表遍历完,这时候把另一个链表直接接上。 当然实现起来有递归和非递归版本,看你喜欢哪个啦,都没毛病,不过递归可能代码更短小精湛些。代码1(非递归版): class L 展开全文
头像 数据结构和算法
发表于 2020-12-21 17:52:34
1,非递归解决 这题比较简单,因为链表是升序的,我们只需要遍历每个链表的头,比较一下哪个小就把哪个链表的头拿出来放到新的链表中,一直这样循环,直到有一个链表为空,然后我们再把另一个不为空的链表挂到新的链表中。我们就以3→4→7→9和2→5→6两个链表来画个图看一下是怎么合并的。 pub 展开全文
头像 小洋芋热爱NLP
发表于 2021-01-21 18:22:59
- 1、题目描述: - 2、题目链接:https://www.nowcoder.com/practice/a479a3f0c4554867b35356e0d57cf03d?tpId=117&&tqId=34954&rp=1&ru=/ta/job-code-high&a 展开全文
头像 卫宫士郎红A
发表于 2020-07-17 18:42:09
将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的。 示例1 输入 {1},{} 输出 {1} 示例2 输入 {1},{1} 输出 {1,1}首先,判断两者都为空的状态其次,用归并排序的合并思想,将小放前面最后,要注意链表的特性,当某一个链表以及为空时,将另外一个 展开全文
头像 LaN666
发表于 2020-11-19 08:56:01
使用辅助头去合并两个有序链表~ import java.util.*; /*  * public class ListNode {  *   int val;  *  展开全文
头像 悟空WK
发表于 2020-11-25 11:10:16
牛客题霸NC33合并有序链表Java题解https://www.nowcoder.com/practice/a479a3f0c4554867b35356e0d57cf03d?tpId=117&&tqId=34954&rp=1&ru=/ta/job-code-high& 展开全文
头像 瓜瓜请多指教
发表于 2020-08-23 16:49:32
class Solution {public: /* * * @param l1 ListNode类 * @param l2 ListNode类 * @return ListNode类 */ ListNode mergeTwoLists(ListN 展开全文
头像 派仔
发表于 2021-06-25 17:14:28
import java.util.*; /*  * public class ListNode {  *   int val;  *   ListN 展开全文
头像 wyg_031113
发表于 2020-11-09 08:18:38
/** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution { public: /** * * @param l1 ListNode类 展开全文