当前位置:网站首页>【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 (。・ω・。)ノ
边栏推荐
- The concept of C language pointer
- PAT甲级 1028 List Sorting
- Sent by mqtt client server of vertx
- Technical dry goods Shengsi mindspire elementary course online: from basic concepts to practical operation, 1 hour to start!
- The difference between typescript let and VaR
- Go language foundation ----- 16 ----- goroutine, GPM model
- SQL create temporary table
- C2-关于VCF文件合并的几种方法
- 华为S5700交换机初始化和配置SSH和TELNET远程登录方法
- Es writing fragment process
猜你喜欢
【MySQL 14】使用DBeaver工具远程备份及恢复MySQL数据库(Linux 环境)
The concept of C language pointer
技术干货|昇思MindSpore NLP模型迁移之Bert模型—文本匹配任务(二):训练和评估
Why is data service the direction of the next generation data center?
Go language foundation ----- 09 ----- exception handling (error, panic, recover)
【开发笔记】基于机智云4G转接板GC211的设备上云APP控制
Technical dry goods Shengsi mindspire operator parallel + heterogeneous parallel, enabling 32 card training 242 billion parameter model
Shengsi mindspire is upgraded again, the ultimate innovation of deep scientific computing
c语言指针的概念
技术干货|昇思MindSpore Lite1.5 特性发布,带来全新端侧AI体验
随机推荐
Unity XR实现交互(抓取,移动旋转,传送,射击)-Pico
IndexSort
Pgadmin 4 v6.11 release, PostgreSQL open source graphical management tool
项目经验分享:基于昇思MindSpore,使用DFCNN和CTC损失函数的声学模型实现
Leetcode 213: 打家劫舍 II
Structure of golang
技术干货 | AlphaFold/ RoseTTAFold开源复现(2)—AlphaFold流程分析和训练构建
TypeScript let与var的区别
Go language - loop statement
Professor Zhang Yang of the University of Michigan is employed as a visiting professor of Shanghai Jiaotong University, China (picture)
UA camouflage, get and post in requests carry parameters to obtain JSON format content
Iterm2设置
Project experience sharing: realize an IR Fusion optimization pass of Shengsi mindspire layer
Analysis of the problems of the 7th Blue Bridge Cup single chip microcomputer provincial competition
Hnsw introduction and some reference articles in lucene9
Inverted chain disk storage in Lucene (pfordelta)
技术干货|昇思MindSpore可变序列长度的动态Transformer已发布!
The concept of C language pointer
输入三次猜一个数字
Chapter VI - Containers