[剑指offer]面试题第[25]题[Leedcode][JAVA][第21题][合并两个有序链表]
【问题描述】[简单]
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入: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题][合并两个有序链表]相关推荐
- 剑指offer面试题6 重建二叉树(java)
注:(1)java中树的构建 (2)构建子树时可以直接利用Arrays.copyOfRange(preorder, from, to),这个方法是左开右闭的 1 package com.xsf.Sor ...
- Leetcode每日一题:21.merge-two-sorted-lists(合并两个有序链表)
常规方法:采用归并排序的归并方法即可 struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {} } ...
- [剑指offer]面试题第[68-2]题[Leetcode][第236题][JAVA][二叉搜索树的最近公共祖先][递归]
[问题描述][中等] 235/68-1 搜索二叉树 236/68-2 二叉树 [解答思路] 递归 时间复杂度:O(N) 空间复杂度:O(N) 情况 1. , 2. , 3. , 4. 的展开写法如下. ...
- [剑指offer]面试题第[57]题[Leetcode][第167题][JAVA][和为s的两个数字][两数之和][HashSet][二分][双指针]
[剑指offer]面试题第[57]题[Leetcode][第167题][第1题] 有序无序之分 题目输出不同之分 以下解法按照[剑指offer]面试题第[57]题进行题解 [问题描述][简单] 输入一 ...
- 【重点】剑指offer——面试题25:二叉树中和为某一值的路径
剑指offer--面试题25:二叉树中和为某一值的路径 参考网址:https://www.nowcoder.com/profile/5488508/codeBookDetail?submissionI ...
- 【剑指Offer面试题】 九度OJ1510:替换空格
c/c++ 中的字符串以"\0"作为结尾符.这样每一个字符串都有一个额外字符的开销. 以下代码将造成内存越界. char str[10]; strcpy(str, "01 ...
- 剑指offer 面试题三 找出数组中重复的数字
1 import org.junit.Test; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 6 public class D ...
- (待补充)【n个骰子的点数】剑指offer——面试题43:n个骰子的点数
剑指offer--面试题43:n个骰子的点数 [注意]此题再牛客网上没有OnlineJudge,在此补充解法. 题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s.输入n,打印出s的所有可能的值 ...
- (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数
剑指offer--面试题12:打印1到最大的n位数 此题在牛客网上没有OnlineJudge,在此补充两种做法. 参考网址:https://blog.csdn.net/yanxiaolx/articl ...
最新文章
- 【LeetCode】142 - Linked List Cycle II
- 2017 年脑机接口研发热点回眸
- padding valid same区别——就是是否补齐0的问题
- Hbase的学习笔记(1)
- 低功耗蓝牙onscanresult 出来名字为空_浅析BLE5.0蓝牙模块在智能家居的运用
- JFinalOA导出Excel
- 一个带关闭按钮的Div窗口,很漂亮
- 基于HTML5 的人脸识别技术
- vue一级分类和耳机分类_vue 无限级分类导航
- 跟我学习dubbo-ZooKeeper注册中心安装(2)
- [经验分享] 收费版文字转语音,免费使用
- 自适应滤波器(一)LMS自适应滤波器
- xcode 打包ipa
- 一键解决word文档样式格式问题
- 用友T3建立年度帐提示:对象名TAX_SB_NSSB_BJ_ZB无效
- WS小世界网络构建实验(Matlab版)
- 我的职业思路:做建模,为什么,不学C4D
- 腾讯云如何判断服务器是否中毒以及如何预防中毒解决方法
- Linux git配置
- MyCat做MySQL负载均衡(享学课堂,咕泡学院听课笔记)
热门文章
- 程序员的生存发展和出路
- GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD)
- Yii中使用的简单方法
- linux-tar命令详解
- python def函数_Python教程之Lambda表达式知识概述
- Will not attempt to authenticate using SASL | dubbo项目启动特别慢,拉取 zookeeper 服务日志打印特别慢
- Android 自动检测更新,自动下载apk更新版本
- c# oracle datasource,C# 连接Oracle 数据库 示例源码下载
- ThreadLocal和线程同步机制的对比
- vuex 源码分析_Vuex框架原理与源码分析