021.合并两个有序链表,递归和遍历,beat100%
鲁迅说过,每天刷一遍二哥的 LeetCode 刷题笔记,离大厂就会更近一步(dog)。
题意
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
难度
简单
标签
链表、排序
示例

输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
输入:l1 = [], l2 = []
输出:[]
输入:l1 = [], l2 = [0]
输出:[0]
分析 1
先来读题,关键词,两个升序链表,合并,一个新的升序链表。
既然升序过,那最小的数字肯定是两个链表l1和l2中头节点中的一个。
如果最小的是 l1 的头节点,那么第二小的节点肯定是l2的头节点或者l1.next,只要再比较一下两个的大小就能够得到第二小的节点。
如果最小的是 l2 的头节点,那么第二小的肯定是l1的头节点或者l2.next;
那我们就可以采用递归的方式:
if (l1.val < l2.val) {
l1.next = mergeTwoLists(l1.next, l2);
return l1;
} else {
l2.next = mergeTwoLists(l1, l2.next);
return l2;
}
如果 l1 的头节点小于 l2 的头节点,那么 l1 的 next 应该是 l1.next 或者 l2;
如果 l1 的头节点大于 l2 的头节点,那么 l2 的 next 应该是 l1 或者 l2.next;
每次递归调用都会返回当前两个链表头部较小的那个节点作为合并链表的当前节点。
递归的结束条...
已加入星球,可直接知识星球授权登录
二哥编程星球目前包含:
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复