当前位置:网站首页>【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 (。・ω・。)ノ
边栏推荐
- Pgadmin 4 v6.11 release, PostgreSQL open source graphical management tool
- yarn link 是如何帮助开发者对 NPM 包进行 debug 的?
- Image recognition and detection -- Notes
- The concept of C language pointer
- 技术干货|昇思MindSpore NLP模型迁移之Roberta ——情感分析任务
- 【踩坑系列】mysql 修改root密码失败
- 一篇文章让你读懂-曼彻斯特编码
- Vertx's responsive MySQL template
- Segment read
- 华为交换机:配置telnet和ssh、web访问
猜你喜欢

图像识别与检测--笔记

Usage of requests module

Go language foundation ----- 11 ----- regular expression

技术干货|昇思MindSpore Lite1.5 特性发布,带来全新端侧AI体验

Application of pigeon nest principle in Lucene minshouldmatchsumscorer

技术干货|关于AI Architecture未来的一些思考

Es writing fragment process

項目經驗分享:實現一個昇思MindSpore 圖層 IR 融合優化 pass

技术干货|昇思MindSpore NLP模型迁移之Bert模型—文本匹配任务(二):训练和评估

Leetcode 213: 打家劫舍 II
随机推荐
Technical dry goods | alphafold/ rosettafold open source reproduction (2) - alphafold process analysis and training Construction
Go language foundation ------ 12 ------ JSON
Analysis of the problems of the 12th Blue Bridge Cup single chip microcomputer provincial competition
UA camouflage, get and post in requests carry parameters to obtain JSON format content
Traversal in Lucene
【MySQL 14】使用DBeaver工具远程备份及恢复MySQL数据库(Linux 环境)
Go language - loop statement
TypeScript let与var的区别
yarn link 是如何帮助开发者对 NPM 包进行 debug 的?
Hnsw introduction and some reference articles in lucene9
Analysis of the eighth Blue Bridge Cup single chip microcomputer provincial competition
Analysis of the ninth Blue Bridge Cup single chip microcomputer provincial competition
Web router of vertx
Go language foundation ----- 03 ----- process control, function, value transfer, reference transfer, defer function
Analysis of the problems of the 10th Blue Bridge Cup single chip microcomputer provincial competition
Go language foundation ------ 14 ------ gotest
PAT甲级 1030 Travel Plan
s7700设备如何清除console密码
Comparison of advantages and disadvantages between most complete SQL and NoSQL
基于RNA的新型癌症疗法介绍
https://leetcode.com/problems/merge-two-sorted-lists/