当前位置:网站首页>leetcode21. Merge two ordered linked lists
leetcode21. Merge two ordered linked lists
2022-08-11 05:46:00 【FussyCat】
leecode题链接:LeetCode21.合并两个有序链表
题目描述:
将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的.
示例 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 <= 100
l1 和 l2 均按 非递减顺序 排列
解题思路:
分别使用递归法和迭代法.
以下用C语言实现:
递归法:
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {
if (l1 == NULL) {
return l2;
} else if (l2 == NULL) {
return l1;
} else if (l1->val < l2->val) {
l1->next = mergeTwoLists(l1->next, l2);
return l1;
} else {
l2->next = mergeTwoLists(l1, l2->next);
return l2;
}
}
迭代法:
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
struct ListNode *head = (struct ListNode *)malloc(sizeof(struct ListNode)); /* The chain of distribution header */
struct ListNode *prev = head;
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;
}
prev->next = (l1 == NULL) ? l2 : l1; /* The situation of the first list is empty */
return head->next;
}
边栏推荐
猜你喜欢

吃瓜教程task02 第3章 线性模型

一张图带你解读--如何从零开始学习接口自动化

(2) Docker installs Redis in practice (persistent AOF and RDB snapshots)

总结:交叉验证

(一)性能实时监控平台搭建(Grafana+Influxdb+Jmeter)

tensorflow代码翻译成pytorch代码 -详细教程+案例

Flask framework learning: template inheritance

深入理解线程、进程、多线程、线程池

【转载】CMake 语法 - 详解 CMakeLists.txt

【翻译】博客游戏项目Q1K3 – 制作
随机推荐
(一)Docker安装Redis实战(一主二从三哨兵)
QtDataVisualization 数据3D可视化
标准模板题:采药
第13章类继承
(三)Redis 如何进行压测
Redis - Data Types (Basic Instructions, String, List, Set, Hash, ZSet, BitMaps, HyperLogLog, GeoSpatial) / Publish and Subscribe
selenuim使用cookie登录京东
二、Jmeter 核心配置文件
task02 fashion-mnist分类实战
Flask框架学习:路由的尾部斜杠
C语言自定义类型——枚举类型讲解
flaks framework learning: adding variables to the URL
第8章 函数探幽-2
【记录】TypeScript
软件测试风险识别
LeetCode43. String multiplication (this method can be used to multiply large numbers)
Win下安装不同版本的MinGW(g++/gcc)以及对应clion编辑器的配置
【转载】CMake 语法 - 详解 CMakeLists.txt
pytorch中tensor 生成的函数
【CSDN21天学习挑战赛】第一天,配置环境外加实现mnist手写数字识别