力扣21(java&python)-合并两个有序链表(简单)
题目:
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例 1:

输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
示例 2:
输入:l1 = [], l2 = []
输出:[]
示例 3:
输入:l1 = [], l2 = [0]
输出:[0]
提示:
- 两个链表的节点数目范围是
[0, 50] -100 <= Node.val <= 100l1和l2均按 非递减顺序 排列
解题思路:
递归:使用递归需要明白递归三要素,参考@腐烂的橘子
1.终止条件:当l1或l2任意一个链表为空时
2.递归内容:如果l1.val < l2.val,则让 l1.next 去连接排序好后的链表头,如果l2.val <= l1.val,则让 l2.next 去连接排序好后的链表头(总之就是判断l1和l2哪个的头结点更小,然后较小结点的next指向其余结点的合并结果)
3.返回值:每一层递归调用之后排序好后的头结点
举例:
1.

2.

3.

4.

5.

6.

7.

8.

java代码:
1 /**
2 * Definition for singly-linked list.
3 * public class ListNode {
4 * int val;
5 * ListNode next;
6 * ListNode() {}
7 * ListNode(int val) { this.val = val; }
8 * ListNode(int val, ListNode next) { this.val = val; this.next = next; }
9 * }
10 */
11 class Solution {
12 public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
13 if(list1 == null){
14 return list2;
15 }else if(list2 == null){
16 return list1;
17 }else if(list1.val < list2.val){
18 list1.next = mergeTwoLists(list1.next, list2);
19 return list1;
20 }else{
21 list2.next = mergeTwoLists(list1, list2.next);
22 return list2;
23 }
24
25 }
26 }

python3代码:
1 # Definition for singly-linked list.
2 # class ListNode:
3 # def __init__(self, val=0, next=None):
4 # self.val = val
5 # self.next = next
6 class Solution:
7 def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
8 if not list1:
9 return list2
10 if not list2:
11 return list1
12
13 if list1.val < list2.val:
14 list1.next = self.mergeTwoLists(list1.next, list2)
15 return list1
16 else:
17 list2.next = self.mergeTwoLists(list1, list2.next)
18 return list2
19
20

力扣21(java&python)-合并两个有序链表(简单)的更多相关文章
- LeetCoded第21题题解--合并两个有序链表
21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出 ...
- LeetCode(21):合并两个有序链表
Easy! 题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1- ...
- LeetCode第21题:合并两个有序链表
题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1- ...
- 力扣Leetcode 21. 合并两个有序链表
合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1-> ...
- Java实现 LeetCode 21 合并两个有序链表
21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1 ...
- LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)
21. 合并两个有序链表 21. Merge Two Sorted Lists 题目描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. LeetCode ...
- <每日 1 OJ> -LeetCode 21. 合并两个有序链表
题目: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4输出:1->1-> ...
- leetcode 21 Merge Two Sorted Lists 合并两个有序链表
描述: 合并两个有序链表. 解决: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if (!l1) return l2; if (!l2) ...
- LeetCode 21. Merge Two Sorted Lists(合并两个有序链表)
题意:合并两个有序链表 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next ...
- [LeetCode题解]21. 合并两个有序链表 | 递归
解题思路 使用递归实现: 定义函数功能:合并两个有序链表,并返回链表的头 结束条件:两个链表其中一个为空,返回另一个链表 递推公式: l1.val < l2.val:l1.next = Merg ...
随机推荐
- 基于python的socket通信之阿里云socket端口不通的解决方案
问题描述: 使用python脚本进行socket业务流程,前几天还可以通信很好的,今天突然发现端口不通了.那就排查端口为啥不通了呢? 方案一:设置阿里云安全组 这个网上不少例子,笔者也按照这个操作过, ...
- day02-Spring基本介绍02
Spring基本介绍02 5.简单模拟Spring基于XML配置的程序 5.1需求说明 自己写一个简单的Spring容器,通过读取beans.xml,获取第一个Javabean:Monster的对象, ...
- 16_AAC解码实战
本文主要讲解:如何将AAC编码后的数据解码成PCM. 命令行 用法非常简单: ffmpeg -c:a libfdk_aac -i in.aac -f s16le out.pcm -c:a libfdk ...
- 毕设系列之Libx264实时视频流(YUV 420P转H264视频编码篇)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- JS(数组)
一 数组的概念 问:之前学习的数据类型,只能存储一个值.如果我们想存储班级中所有学生的姓名,那么该如何存储呢?答:可以使用数组(Array).数组可以把一组相关的数据一起存放,并提供方便的访问(获取) ...
- 记录--uniapp自定义相机 自定义界面拍照录像闪光灯切换摄像头
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 因公司业务需要,需要开发水印相机功能,而项目代码用的uniapp框架,App端只能简单调用系统的相机,无法自定义界面,在此基础上,只能开发 ...
- C#中字典集合的两种遍历
记录一下 Dictionary<string, string> dictionary = new Dictionary<string,string>(); foreach (s ...
- JSON转换为CSV
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> ...
- 使用MFT进行加密文件传输的7个好处
至少,托管文件传输(MFT)解决方案是一种产品,它包含入站和出站文件传输的所有方面,同时使用行业标准的网络协议和无缝加密.它可以从单个集中管理点在您的网络,系统,应用程序,贸易伙伴和云环境中自动化和传 ...
- read IEEE std for verolog(2)
read IEE standard for verilog (2) 1.阅读前言 前面大致地看完了序言,了解了一下verilog的起源以及基本特性.接下来往下读有相关链接和目录,然后是正文.今天暂时阅 ...