21. 合并两个有序链表
- 题号:21
- 来源:LeetCode
- 难度:简单
- 标签:
链表双指针 - 语言:TypeScript
- 解法:1 个
- 作者:lmliheng
- 最近更新:2026-09-27
TypeScript · O(m+n) 时间 · O(1) 空间 · 更新于 2026-09-27
双指针比较大小依次接续,哑结点返回
typescript
import { ListNode } from '../JS/DataStructure/ListNode.js'
/**
* @difficulty easy
* @tags 链表,双指针
* @time O(m+n)
* @space O(1)
* @note 双指针比较大小依次接续,哑结点返回
* @21. 合并两个有序链表
*/
function mergeTwoLists(list1: ListNode<number> | null, list2: ListNode<number> | null): ListNode<number> | null {
let dummy = new ListNode(0)
let p1 = list1
let p2 = list2
let p = dummy
while (p1 && p2) {
if (p1.val > p2.val) {
p.next = p2
p2 = p2.next
p=p.next
} else {
p.next = p1
p1 = p1.next
p=p.next
}
}
if (!p1) {
p.next = p2
}
if (!p2) {
p.next = p1
}
return dummy.next
};源码:ts/leetcode/21. 合并两个有序链表.ts
在 GitHub 上查看题目所在目录:lmliheng/algorithm