【问题描述】[简单]


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

【解答思路】

1. 非递归

时间复杂度:O(N) 空间复杂度:O(N)

 public ListNode mergeTwoLists(ListNode l1, ListNode l2) {//新建节点ListNode list  = new ListNode(0);ListNode l =list;while(l1!= null && l2!= null){if(l1.val <= l2.val){l.next =l1 ;l1 = l1.next;l = l.next;}else {l.next = l2;l2 = l2.next;l =l.next;}}//某一条链表遍历完毕if(l1 == null) {l.next =l2;}else {l.next =l1;}return list.next;}
2.递归

递归就是程序内部维护了一个栈。这个题就是每次都把最小值压入栈,最后出栈的时候,将所有数连在一起就可以了。说白了,就是用一个栈维护了顺序。最后的连接,当然是小的连小的,所以l1 小,就连到 l1,l2 小就连到 l2,最后先返回的,就是最小的头结点

时间复杂度:O(N+M) 空间复杂度:O(1)
N M 分别为l1,l2两者的长度

    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(l1, l2.next);return l2;}}作者:guanpengchn

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

【总结】

1.递归 栈
2.链表画图理解

[剑指offer]面试题第[25]题[Leedcode][JAVA][第21题][合并两个有序链表]相关推荐

  1. 剑指offer面试题6 重建二叉树(java)

    注:(1)java中树的构建 (2)构建子树时可以直接利用Arrays.copyOfRange(preorder, from, to),这个方法是左开右闭的 1 package com.xsf.Sor ...

  2. Leetcode每日一题:21.merge-two-sorted-lists(合并两个有序链表)

    常规方法:采用归并排序的归并方法即可 struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {} } ...

  3. [剑指offer]面试题第[68-2]题[Leetcode][第236题][JAVA][二叉搜索树的最近公共祖先][递归]

    [问题描述][中等] 235/68-1 搜索二叉树 236/68-2 二叉树 [解答思路] 递归 时间复杂度:O(N) 空间复杂度:O(N) 情况 1. , 2. , 3. , 4. 的展开写法如下. ...

  4. [剑指offer]面试题第[57]题[Leetcode][第167题][JAVA][和为s的两个数字][两数之和][HashSet][二分][双指针]

    [剑指offer]面试题第[57]题[Leetcode][第167题][第1题] 有序无序之分 题目输出不同之分 以下解法按照[剑指offer]面试题第[57]题进行题解 [问题描述][简单] 输入一 ...

  5. 【重点】剑指offer——面试题25:二叉树中和为某一值的路径

    剑指offer--面试题25:二叉树中和为某一值的路径 参考网址:https://www.nowcoder.com/profile/5488508/codeBookDetail?submissionI ...

  6. 【剑指Offer面试题】 九度OJ1510:替换空格

    c/c++ 中的字符串以"\0"作为结尾符.这样每一个字符串都有一个额外字符的开销. 以下代码将造成内存越界. char str[10]; strcpy(str, "01 ...

  7. 剑指offer 面试题三 找出数组中重复的数字

    1 import org.junit.Test; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 6 public class D ...

  8. (待补充)【n个骰子的点数】剑指offer——面试题43:n个骰子的点数

    剑指offer--面试题43:n个骰子的点数 [注意]此题再牛客网上没有OnlineJudge,在此补充解法. 题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s.输入n,打印出s的所有可能的值 ...

  9. (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数

    剑指offer--面试题12:打印1到最大的n位数 此题在牛客网上没有OnlineJudge,在此补充两种做法. 参考网址:https://blog.csdn.net/yanxiaolx/articl ...

最新文章

  1. 【LeetCode】142 - Linked List Cycle II
  2. 2017 年脑机接口研发热点回眸
  3. padding valid same区别——就是是否补齐0的问题
  4. Hbase的学习笔记(1)
  5. 低功耗蓝牙onscanresult 出来名字为空_浅析BLE5.0蓝牙模块在智能家居的运用
  6. JFinalOA导出Excel
  7. 一个带关闭按钮的Div窗口,很漂亮
  8. 基于HTML5 的人脸识别技术
  9. vue一级分类和耳机分类_vue 无限级分类导航
  10. 跟我学习dubbo-ZooKeeper注册中心安装(2)
  11. [经验分享] 收费版文字转语音,免费使用
  12. 自适应滤波器(一)LMS自适应滤波器
  13. xcode 打包ipa
  14. 一键解决word文档样式格式问题
  15. 用友T3建立年度帐提示:对象名TAX_SB_NSSB_BJ_ZB无效
  16. WS小世界网络构建实验(Matlab版)
  17. 我的职业思路:做建模,为什么,不学C4D
  18. 腾讯云如何判断服务器是否中毒以及如何预防中毒解决方法
  19. Linux git配置
  20. MyCat做MySQL负载均衡(享学课堂,咕泡学院听课笔记)

热门文章

  1. 程序员的生存发展和出路
  2. GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD)
  3. Yii中使用的简单方法
  4. linux-tar命令详解
  5. python def函数_Python教程之Lambda表达式知识概述
  6. Will not attempt to authenticate using SASL | dubbo项目启动特别慢,拉取 zookeeper 服务日志打印特别慢
  7. Android 自动检测更新,自动下载apk更新版本
  8. c# oracle datasource,C# 连接Oracle 数据库 示例源码下载
  9. ThreadLocal和线程同步机制的对比
  10. vuex 源码分析_Vuex框架原理与源码分析