[LeetCode]21. 合并两个有序链表(递归)
2024-09-07 17:41:26
题目
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-two-sorted-lists
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解(转)
递归三要素:
- 终止条件:两条链表分别名为 l1 和 l2,当 l1 为空或 l2 为空时结束
- 返回值:每一层调用都返回排序好的链表头
- 本级递归内容:如果 l1 的 val 值更小,则将 l1.next 与排序好的链表头相接,l2 同理
代码
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1 == null) {
return l2;
}
if (l2 == null) {
return l1;
}
if (l1.val < l2.val) {
l1.next = mergeTwoLists(l1.next, l2);
return l1;
} else {
l2.next = mergeTwoLists(l2.next, l1);
return l2;
}
}
}
最新文章
- Vue - 过滤器
- effective OC2.0 52阅读笔记(三 接口与API设计)
- 测试nfs和cifs
- NOIP2013 货车运输 (最大生成树+树上倍增LCA)
- JavaScript Math 对象方法
- mssql全文索引
- Update操作浅析,一定是先Delete再Insert吗?
- HDU-5347 MZL&#39;s chemistry
- 第 16 章 观察者模式【Observer Pattern】
- 关于NSURL的一些属性的记录
- iOS中常用的四种数据持久化方法简介
- ora-01445 无法从不带保留关键字的表的联接视图中选择 ROWID 或采样
- MVC中的Startup.Auth.cs、BundleConfig.cs、FilterConfig.cs和RouteConfig.cs
- VBS基础篇 - 循环语句(4) - For Each...Next
- eclipse安装Veloeclipse(Velocity编辑插件)
- 水课 or not
- 本文转自 MyEclipse 2015反编译插件安装
- Android ------------------ 带边框的圆角矩形
- Java中关于AbstractQueuedSynchronizer的入门(二)
- ef 仓储模式 Redis
热门文章
- 怎么把txt转换成excel
- LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式
- Visual Studio自动编译gRPC工程的设置
- 你们要的MyCat实现MySQL分库分表来了
- 【译】New experimental Razor editor for Visual Studio
- 共享&;img (给作者自己
- 用java编程在10000到99999中的数字中找到aabcc类型的数字
- Distributional Reinforcement Learning with Quantile Regression
- SLS案例中心
- 一台主机的最大TCP连接数是多少?