首页 > 试题广场 > 合并两个排序的链表
[编程题]合并两个排序的链表
  • 热度指数:777595 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
头像 牛客官方题解
发表于 2020-05-29 15:15:28
精华题解 描述 这是一篇针对初学者的题解,共用2种方法解决。知识点:单链表,递归难度:一星 题解: 题目要求:给两个非递减单链表l1, l2,合并为一个非递减的单链表。 方法一:迭代版本求解 初始化:定义cur指向新链表的头结点操作: 如果l1指向的结点值小于等于l2指向的结点值,则将l1指向的结点值链接 展开全文
头像 王小明1696
发表于 2019-09-22 21:12:28
public class Solution {     public ListNode Merge(ListNode list1,ListNode list2) {         ListNode h = new ListNode(-1);         ListNode cur = h;    展开全文
头像 郭家兴0624
发表于 2019-08-10 14:57:45
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。非递归方法: def Merge(self, l1, l2): dummy = cur = ListNode(0) while l1 and l2: if l1.val 展开全文
头像 年少挽剑世无双·
发表于 2020-03-06 17:51:09
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解答:1.遍历两个链表,按大小顺序拼接。public class Q_16 { public ListNode Merge(ListNode list1, ListNode list2) { 展开全文
头像 道阻且长z
发表于 2019-09-26 02:25:41
思路: 方法一:将两个链表结点挨个进行比较,插入到一个新表中。 方法二:把list2往list1的中插。 比较list2与list1的值:当list2值小等于list1值时往list1的前面插,并让list2指向下一个元素否则不进行插入,list1指向下一个结点。 重复上述操作,直到有一个链表为空 展开全文
头像 中工升达预备毕业生
发表于 2019-10-02 12:40:32
递归的写法真的很优雅... 进阶:在两个原链表上进行操作,非递归// 看图时,先看代码 public class Solution { public ListNode Merge(ListNode list1, ListNode list2) { if (list1 == 展开全文
头像 心谭
发表于 2020-01-18 15:32:28
设置一个“哨兵节点”叫 preHead,这会让代码写起来非常“清爽”。整体流程如下: 如果 pHead1 和 pHead2,均没遍历完: 如果 pHead1.val <= pHead2.val,那么当前 node 的 next 指向 pHead1。并且移动 pHead1 指针。 否则,当前 展开全文
头像 Jalr4ever
发表于 2019-08-25 23:19:05
剑指 - 合并两个有序链表 题目 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路 按照归并排序的去写即可,只不过现在归并从数组变成了链表节点,下面的代码可能比较冗余,但还是比较容易理解的 public class MergeTwoOrderList 展开全文
头像 fh2021
发表于 2020-03-09 20:26:12
如果list1小于list2,则list1作为新序列的开头,后面应该接的部分等同于list1.next和list2的重新排序。反之同理。代码: public class Solution { public ListNode Merge(ListNode list1,ListNode list 展开全文
头像 橙子爱吃桃子
发表于 2020-05-08 16:43:37
C++/代码: class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { auto dummy = new ListNode(-1); //定义一个虚拟表头 a 展开全文
头像 进一步有进一步的欢喜
发表于 2020-04-20 14:25:46
递归版本: class Solution: # 返回合并后列表 def Merge(self, pHead1, pHead2): # 递归结束条件就是有一个到头了,返回不是None的那个就好了 if not pHead1 or not pHead2: 展开全文