音乐
音乐
暂未播放
0:00/0:00
暂无歌词
LeetCode | 合并两个有序链表
371 字
2 分钟
LeetCode | 合并两个有序链表
分类:链表
题目#
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
1输入:l1 = [1,2,4], l2 = [1,3,4]2输出:[1,1,2,3,4,4]讲解#
两个链表已经有序,用两个指针 l1、l2 从头比较,每次把值更小的那个节点接到结果链表的末尾,谁的节点被取走谁就往后移。
关键点:
- 用
dummy虚拟头节点串结果,最后返回dummy.next,不用单独处理头节点(和 两数相加 一样的套路)。 - 循环条件是
l1 and l2,其中一个遍历完后,剩下的那段直接整体接上:cur.next = l1 if l1 else l2,因为剩下的本来就是有序的。
复杂度#
- 迭代法:
- 时间复杂度:
O(m + n) - 空间复杂度:
O(1)
- 时间复杂度:
代码#
源码#
1from typing import Optional2
3
4class ListNode:5 def __init__(self, val: int = 0, next: Optional['ListNode'] = None):6 self.val = val7 self.next = next8
9
10class Solution:11 def mergeTwoLists(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:12 dummy = ListNode()13 cur = dummy14
15 while l1 and l2:16 if l1.val <= l2.val:17 cur.next = l118 l1 = l1.next19 else:20 cur.next = l221 l2 = l2.next22 cur = cur.next23
24 cur.next = l1 if l1 else l225 return dummy.next测试#
1def build_list(vals):2 dummy = ListNode()3 cur = dummy4 for v in vals:5 cur.next = ListNode(v)6 cur = cur.next7 return dummy.next8
9
10def to_list(head):11 res = []12 while head:13 res.append(head.val)14 head = head.next15 return res16
17
18sol = Solution()19
20assert to_list(sol.mergeTwoLists(build_list([1, 2, 4]), build_list([1, 3, 4]))) == [1, 1, 2, 3, 4, 4]21assert to_list(sol.mergeTwoLists(build_list([]), build_list([]))) == []22assert to_list(sol.mergeTwoLists(build_list([]), build_list([0]))) == [0]23assert to_list(sol.mergeTwoLists(build_list([1]), build_list([2]))) == [1, 2]24
25print("PASS")参考资料#
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
LeetCode | 合并两个有序链表
https://leetcode.cn/problems/merge-two-sorted-lists/最后更新于 2026-08-21
部分内容可能已过时
相关文章智能推荐
1
LeetCode | 两数相加
LeetCodeLeetCode 两数相加题解:模拟竖式逐位相加,dummy 虚拟头节点串联结果链表,维护 carry 进位。
2
LeetCode | 反转链表
LeetCodeLeetCode 反转链表题解:使用迭代法逐个翻转节点指向,时间复杂度 O(n),空间复杂度 O(1)。
3
LeetCode | 相交链表
LeetCodeLeetCode 相交链表题解:使用哈希集合或长度差对齐法找到两个链表的相交起始节点。
4
LeetCode | 两数之和
LeetCodeLeetCode 两数之和题解:使用 Python 字典作为哈希表,在一次遍历中找到目标下标。
5
LeetCode | 哈希表
LeetCode整理 LeetCode 哈希表题目的核心思路:先建表,再查表。
随机文章随机推荐
暂无随机文章
评论区
分享你的想法,与大家交流讨论
--
总访问量
--
访客数
公告
音乐
音乐
暂未播放
0:00/0:00
暂无歌词
站点统计
文章
66
分类
16
标签
93
总字数
477,284
运行时长
0 天
最后活动
0 天前
最新动态



