[递归|迭代] leetcode 21 合并两个有序链表
[递归|迭代] 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 合并两个有序链表相关推荐
- LeetCode 21. 合并两个有序链表(链表)
上一篇博客:LeetCode 20. 有效的括号(栈.字符串) 写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.最近萌生了刷LeetCode ...
- Java实现 LeetCode 21 合并两个有序链表
21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1 ...
- LeetCode 21合并两个有序链表22括号生成
微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...
- 【Java】leetCode 21 合并两个有序链表
题目 : 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 解题思路 : 1.依据以上两个升序链表进行拼接: 2.先定义一个傀儡节点newHead,用来 ...
- leetcode - 21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...
- LeetCode 21. 合并两个有序链表(单链表)
文章目录 1. 题目信息 2. 解题 1. 题目信息 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1-> ...
- leetcode 21.合并两个有序链表
题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-> ...
- LeetCode 21 ——合并两个有序链表
1. 题目 2. 解答 新建一个带有哨兵结点的链表,依次比较两个有序链表的结点值,将较小值的结点插入到新链表后面.直到其中一个比较完毕,将另一个链表剩余的结点全部放到新链表最后面即可.最后,可以删除哨 ...
- [leetcode] 21.合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4 ...
最新文章
- Java 晋升必会的 70 道 「Spring 全家桶」高频面试题
- Spring Cloud Sleuth 服务跟踪 将跟踪信息存储到数据库
- 数字电路技术可能出现的简答题_数字电子技术复习题(本科)
- 重新定义旅游网站,米胖新版发布
- 教你玩转CSS margin(外边距)
- Android 之视频监控
- Ubuntu18.04安装cuDNN和Tensorflow的正确姿势
- python3 slice
- Python 进阶 —— 装饰器函数的使用
- 码农们来一起讨论下数据库设计....
- 文本生成解码策略笔记-常见解码策略
- JavaScript - OOP编程思想
- 怎么找相同台词的影视片段?这8个电影搜索神器,一句台词找到对应片段
- ps怎么对比原图快捷键_用Photoshop调出图片冷暖色对比
- linux 2.6.32文件系统的dentry父子关系
- C语言short精解
- 那些普通人的价值观终究会害了你
- 新手如何玩转拼多多?需要注意什么?
- 二叉树的镜像和对称二叉树
- 微信支付要租用服务器吗,切记!使用微信支付一定要打开这些功能!
热门文章
- cpython知乎_Numpy为什么可以用C语言写?
- js 数组 实现 完全树_Flink实例(六十八):布隆过滤器(Bloom Filter)的原理和实现 - 秋华...
- long类型转成integer类型避免空指针的方法_解决swagger的类型转换报错问题
- 计算机算法设计与分析 Huffman编码问题
- WSL安装记录及相关
- K-means++算法的学习笔记~
- LeetCode for SQL 176. 第二高的薪水 (ifnull limit order by)
- 【设计模式】重载和重写
- J2EE代码存档--导出Excel
- 剑指offer.从未到头打印链表