当前位置:网站首页>【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 (。・ω・。)ノ
边栏推荐
- Technical dry goods | reproduce iccv2021 best paper swing transformer with Shengsi mindspire
- Go language foundation ----- 02 ----- basic data types and operators
- Analysis of the problems of the 11th Blue Bridge Cup single chip microcomputer provincial competition
- The difference between typescript let and VaR
- 论文学习——鄱阳湖星子站水位时间序列相似度研究
- Go language foundation ------ 14 ------ gotest
- JUnit unit test of vertx
- 技术干货|昇思MindSpore创新模型EPP-MVSNet-高精高效的三维重建
- PgSQL converts string to double type (to_number())
- 基于RNA的新型癌症疗法介绍
猜你喜欢

【MySQL 14】使用DBeaver工具远程备份及恢复MySQL数据库(Linux 环境)

PAT甲级 1031 Hello World for U

项目经验分享:实现一个昇思MindSpore 图层 IR 融合优化 pass

Harmonyos third training notes

Go language foundation ----- 13 ----- file

HarmonyOS第三次培训笔记

技术干货|昇思MindSpore初级课程上线:从基本概念到实操,1小时上手!

PAT甲级 1032 Sharing

Leetcode 198: 打家劫舍

技术干货|昇思MindSpore创新模型EPP-MVSNet-高精高效的三维重建
随机推荐
Go language foundation ----- 05 ----- structure
技术干货|昇思MindSpore可变序列长度的动态Transformer已发布!
Technology dry goods | luxe model for the migration of mindspore NLP model -- reading comprehension task
Analysis of the ninth Blue Bridge Cup single chip microcomputer provincial competition
技术干货|昇思MindSpore NLP模型迁移之Bert模型—文本匹配任务(二):训练和评估
PAT甲级 1032 Sharing
Leetcode 213: 打家劫舍 II
Go language foundation ------ 14 ------ gotest
输入三次猜一个数字
Go language foundation ----- 11 ----- regular expression
昇思MindSpore再升级,深度科学计算的极致创新
Segment read
Go language foundation ----- 13 ----- file
HarmonyOS第三次培训笔记
Partage de l'expérience du projet: mise en œuvre d'un pass optimisé pour la fusion IR de la couche mindstore
PHP微信抢红包的算法
Vertx metric Prometheus monitoring indicators
Go language foundation ----- 10 ----- string related operations (operation function, string conversion)
技术干货|昇思MindSpore初级课程上线:从基本概念到实操,1小时上手!
Technical dry goods Shengsi mindspire operator parallel + heterogeneous parallel, enabling 32 card training 242 billion parameter model
https://leetcode.com/problems/merge-two-sorted-lists/