【刷题1】LeetCode 21. 合并两个有序链表 java题解
https://leetcode-cn.com/problems/merge-two-sorted-lists/
方法一:迭代
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if(l1==null&&l2==null)return null;if(l1==null)return l2;if(l2==null)return l1;ListNode head=new ListNode();ListNode tmp=head;while(l1!=null&&l2!=null){if(l1.val<=l2.val){head.next=l1;l1=l1.next;}else{head.next=l2;l2=l2.next;}head=head.next;}if(l1!=null)head.next=l1;if(l2!=null)head.next=l2;return tmp.next;}
}
时间复杂度:O(n+m) ,其中 n 和 m 分别为两个链表的长度。因为每次循环迭代中,l1 和 l2 只有一个元素会被放进合并链表中, 因此 while 循环的次数不会超过两个链表的长度之和。所有其他操作的时间复杂度都是常数级别的,因此总的时间复杂度为 O(n+m)。
空间复杂度:O(1) 。我们只需要常数的空间存放若干变量。
方法二:递归
【刷题1】LeetCode 21. 合并两个有序链表 java题解相关推荐
- LeetCode 21. 合并两个有序链表(链表)
上一篇博客:LeetCode 20. 有效的括号(栈.字符串) 写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.最近萌生了刷LeetCode ...
- [递归|迭代] leetcode 21 合并两个有序链表
[递归|迭代] leetcode 21 合并两个有序链表 1.题目 题目链接 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2 ...
- 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. 解题 1. 题目信息 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1-> ...
- leetcode - 21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...
- leetcode 21.合并两个有序链表
题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-> ...
- LeetCode 21 ——合并两个有序链表
1. 题目 2. 解答 新建一个带有哨兵结点的链表,依次比较两个有序链表的结点值,将较小值的结点插入到新链表后面.直到其中一个比较完毕,将另一个链表剩余的结点全部放到新链表最后面即可.最后,可以删除哨 ...
- 81. Leetcode 21. 合并两个有序链表 (排序)
将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例 1:输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] ...
最新文章
- LR+Jenkins实践思路
- python画出心形图-python画出心形图
- mysql 重构同步老数据_MySQL 重构查询的方式
- python 关于字节串和字符串
- Android Studio 导入 Android 系统模块并编译和调试
- itchat python_itchat-python搭建微信机器人(附示例)
- php 变量字节大小,PHP 变量
- Python自然语言处理学习笔记(60):7.1 信息抽取
- 阿里云推送证书验证失败
- 红米手机连接小米wifi显示已连接服务器,小米手机连wifi已连接却无法访问互联网怎么回事...
- 269. Alien Dictionary火星语字典(拓扑排序)
- ios绘图_使用Pencilkit轻松将绘图功能添加到ios应用
- 苹果耳机安卓手机可以用吗_想知道安卓手机用一年会卡,苹果手机不卡,这个问题出现在那吗...
- 中通快递关键业务和复杂架构挑战下的 Kubernetes 集群服务暴露实践
- Xtrabackup备份与恢复+异机远程流式备份
- MySQL旧版本的完整卸载(最全面)
- 如何将微信素材库的文章保留格式的复制到自己的博客论坛或者其他素材库
- ROS中小乌龟画矩形不够方问题的探讨
- 使用浏览器调试前端的必备技巧
- ie8及其以下版本兼容性问题之圆角