当前位置:网站首页>【LeetCode】3. Merge two sorted lists · merge two ordered linked lists
【LeetCode】3. Merge two sorted lists · merge two ordered linked lists
2022-07-03 07:42:00 【AQin1012】
Title Description
Description in English
You are given the heads of two sorted linked lists list1 and list2. Merge the two lists in a one sorted list. The list should be made by splicing together the nodes of the first two lists. Return the head of the merged linked list.
English address
Description of Chinese version
Merge two ascending linked lists into a new Ascending Link list and return . The new linked list is made up of all the nodes of the given two linked lists .
Example 1:
Input :l1 = [1,2,4], l2 = [1,3,4]
Output :[1,1,2,3,4,4]
Example 2:
Input :l1 = [], l2 = []
Output :[]
Example 3:
Input :l1 = [], l2 = [0]
Output :[0]
Constraints· Tips :
The range of the number of nodes in the two linked lists is [0, 50]
-100 <= Node.val <= 100
l1 and l2 All according to Non decreasing order array
Address of Chinese version
Their thinking
My first reaction was to read all , Then compare one by one , Then put it into a new linked list , Then I thought about it , The linked lists of these two inputs are already in order , In fact, you can read data from two linked lists and compare them , The smaller one is stored in the new linked list and points to the next data of the linked list , Big continues to compare with this new data …… repeat , Until a linked list is empty , Add the remaining data of the non empty linked list to the end of the new linked list , Just return to the new linked list .
How to solve the problem
My version
Recursive method
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
if (list1 == null) {
return list2;
}
else if (list2 == null) {
return list1;
}
else if (list1.val <= list2.val) {
list1.next = mergeTwoLists(list1.next, list2);
return list1;
} else {
list2.next = mergeTwoLists(list1, list2.next);
return list2;
}
}
// 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;
}
}
Official edition
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode prehead = new ListNode(-1);
ListNode prev = prehead;
while (l1 != null && l2 != null) {
if (l1.val <= l2.val) {
prev.next = l1;
l1 = l1.next;
} else {
prev.next = l2;
l2 = l2.next;
}
prev = prev.next;
}
// After the merger l1 and l2 At most, only one has not been merged yet , We can directly point the end of the linked list to the list that has not been merged
prev.next = l1 == null ? l2 : l1;
return prehead.next;
}
// 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;
}
}
Welcome students who have better methods to kick me in the comment area (。・ω・。)ノ
边栏推荐
- Beginners use Minio
- yarn link 是如何帮助开发者对 NPM 包进行 debug 的?
- Go language foundation ----- 01 ----- go language features
- Collector in ES (percentile / base)
- s7700设备如何清除console密码
- The difference between typescript let and VaR
- Vertx restful style web router
- PDO and SDO concepts
- JUnit unit test of vertx
- Technical dry goods | alphafold/ rosettafold open source reproduction (2) - alphafold process analysis and training Construction
猜你喜欢
图像识别与检测--笔记
项目经验分享:基于昇思MindSpore实现手写汉字识别
Lucene introduces NFA
技术干货|昇思MindSpore创新模型EPP-MVSNet-高精高效的三维重建
【CoppeliaSim4.3】C#调用 remoteApi控制场景中UR5
Harmonyos third training notes
Reconnaissance et détection d'images - Notes
Various postures of CS without online line
[coppeliasim4.3] C calls UR5 in the remoteapi control scenario
Unity XR实现交互(抓取,移动旋转,传送,射击)-Pico
随机推荐
Go language foundation ----- 08 ----- interface
Go language foundation ----- 15 ----- reflection
Go language foundation ----- 04 ----- closure, array slice, map, package
【开发笔记】基于机智云4G转接板GC211的设备上云APP控制
Go language foundation ----- 11 ----- regular expression
Reconnaissance et détection d'images - Notes
Leetcode 198: house raiding
Project experience sharing: realize an IR Fusion optimization pass of Shengsi mindspire layer
Traversal in Lucene
Vertx metric Prometheus monitoring indicators
华为S5700交换机初始化和配置telnet,ssh用户方法
PAT甲级 1028 List Sorting
VMware network mode - bridge, host only, NAT network
pgAdmin 4 v6.11 发布,PostgreSQL 开源图形化管理工具
截图工具Snipaste
Vertx multi vertical shared data
Mail sending of vertx
Lucene merge document order
Analysis of the ninth Blue Bridge Cup single chip microcomputer provincial competition
在浏览器输入url后执行什么