题目

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

示例:

输入: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 同理

很好的图解参考链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/solution/hua-jie-suan-fa-21-he-bing-liang-ge-you-xu-lian-bi/

代码

/**
* 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;
}
}
}

最新文章

  1. Vue - 过滤器
  2. effective OC2.0 52阅读笔记(三 接口与API设计)
  3. 测试nfs和cifs
  4. NOIP2013 货车运输 (最大生成树+树上倍增LCA)
  5. JavaScript Math 对象方法
  6. mssql全文索引
  7. Update操作浅析,一定是先Delete再Insert吗?
  8. HDU-5347 MZL&#39;s chemistry
  9. 第 16 章 观察者模式【Observer Pattern】
  10. 关于NSURL的一些属性的记录
  11. iOS中常用的四种数据持久化方法简介
  12. ora-01445 无法从不带保留关键字的表的联接视图中选择 ROWID 或采样
  13. MVC中的Startup.Auth.cs、BundleConfig.cs、FilterConfig.cs和RouteConfig.cs
  14. VBS基础篇 - 循环语句(4) - For Each...Next
  15. eclipse安装Veloeclipse(Velocity编辑插件)
  16. 水课 or not
  17. 本文转自 MyEclipse 2015反编译插件安装
  18. Android ------------------ 带边框的圆角矩形
  19. Java中关于AbstractQueuedSynchronizer的入门(二)
  20. ef 仓储模式 Redis

热门文章

  1. 怎么把txt转换成excel
  2. LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式
  3. Visual Studio自动编译gRPC工程的设置
  4. 你们要的MyCat实现MySQL分库分表来了
  5. 【译】New experimental Razor editor for Visual Studio
  6. 共享&amp;img (给作者自己
  7. 用java编程在10000到99999中的数字中找到aabcc类型的数字
  8. Distributional Reinforcement Learning with Quantile Regression
  9. SLS案例中心
  10. 一台主机的最大TCP连接数是多少?