[递归|迭代] leetcode 21 合并两个有序链表

1.题目

题目链接
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

2.分析

2.1.直观解法

还是类似于归并排序中的合并过程,利用两个指针分别遍历两个链表,比较当前两个节点中数的大小,将较小的数加入新链表即可。

ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {ListNode* head = new ListNode(-1);ListNode* cur = head;while(l1 != nullptr && l2 != nullptr) {if(l1->val < l2->val) {cur->next = l1;l1 = l1->next;}else{cur->next = l2;l2 = l2->next;}cur = cur->next;}cur->next = l1 == nullptr ? l2 : l1; return head->next;
}

2.2.递归

可以直接利用原有的方法进行本地的递归。

ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {if (l1 == nullptr) {return l2;} else if (l2 == nullptr) {return l1;} else if (l1->val < l2->val) {l1->next = mergeTwoLists(l1->next, l2);return l1;} else {l2->next = mergeTwoLists(l1, l2->next);return l2;}
}

[递归|迭代] leetcode 21 合并两个有序链表相关推荐

  1. LeetCode 21. 合并两个有序链表(链表)

    上一篇博客:LeetCode 20. 有效的括号(栈.字符串)  写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.最近萌生了刷LeetCode ...

  2. Java实现 LeetCode 21 合并两个有序链表

    21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1 ...

  3. LeetCode 21合并两个有序链表22括号生成

    微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...

  4. 【Java】leetCode 21 合并两个有序链表

    题目 : 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 解题思路 : 1.依据以上两个升序链表进行拼接: 2.先定义一个傀儡节点newHead,用来 ...

  5. leetcode - 21. 合并两个有序链表

    将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...

  6. LeetCode 21. 合并两个有序链表(单链表)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1-> ...

  7. leetcode 21.合并两个有序链表

    题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-> ...

  8. LeetCode 21 ——合并两个有序链表

    1. 题目 2. 解答 新建一个带有哨兵结点的链表,依次比较两个有序链表的结点值,将较小值的结点插入到新链表后面.直到其中一个比较完毕,将另一个链表剩余的结点全部放到新链表最后面即可.最后,可以删除哨 ...

  9. [leetcode] 21.合并两个有序链表

    将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4 ...

最新文章

  1. Java 晋升必会的 70 道 「Spring 全家桶」高频面试题
  2. Spring Cloud Sleuth 服务跟踪 将跟踪信息存储到数据库
  3. 数字电路技术可能出现的简答题_数字电子技术复习题(本科)
  4. 重新定义旅游网站,米胖新版发布
  5. 教你玩转CSS margin(外边距)
  6. Android 之视频监控
  7. Ubuntu18.04安装cuDNN和Tensorflow的正确姿势
  8. python3 slice
  9. Python 进阶 —— 装饰器函数的使用
  10. 码农们来一起讨论下数据库设计....
  11. 文本生成解码策略笔记-常见解码策略
  12. JavaScript - OOP编程思想
  13. 怎么找相同台词的影视片段?这8个电影搜索神器,一句台词找到对应片段
  14. ps怎么对比原图快捷键_用Photoshop调出图片冷暖色对比
  15. linux 2.6.32文件系统的dentry父子关系
  16. C语言short精解
  17. 那些普通人的价值观终究会害了你
  18. 新手如何玩转拼多多?需要注意什么?
  19. 二叉树的镜像和对称二叉树
  20. 微信支付要租用服务器吗,切记!使用微信支付一定要打开这些功能!

热门文章

  1. cpython知乎_Numpy为什么可以用C语言写?
  2. js 数组 实现 完全树_Flink实例(六十八):布隆过滤器(Bloom Filter)的原理和实现 - 秋华...
  3. long类型转成integer类型避免空指针的方法_解决swagger的类型转换报错问题
  4. 计算机算法设计与分析 Huffman编码问题
  5. WSL安装记录及相关
  6. K-means++算法的学习笔记~
  7. LeetCode for SQL 176. 第二高的薪水 (ifnull limit order by)
  8. 【设计模式】重载和重写
  9. J2EE代码存档--导出Excel
  10. 剑指offer.从未到头打印链表