🔗 链表

链表是高频考点,涵盖指针操作、快慢指针、归并排序、LRU 缓存等经典题型。

14 题  ·  简单 ×5  中等 ×7  困难 ×2

# 题目 难度
160 相交链表 简单
206 反转链表 简单
234 回文链表 简单
141 环形链表 简单
21 合并两个有序链表 简单
142 环形链表 II 中等
2 两数相加 中等
19 删除链表的倒数第 N 个结点 中等
24 两两交换链表中的节点 中等
138 随机链表的复制 中等
148 排序链表 中等
146 LRU 缓存 中等
25 K 个一组翻转链表 困难
23 合并 K 个升序链表 困难

核心思路

  • 相交链表:两指针各自走完自己的链表后切换到对方,相遇点即为交点(路径等长)。
  • 环形链表 I / II:快慢指针判环;找入环点时将一指针重置到头节点,两指针同速前进再次相遇即入环点。
  • 反转链表:迭代三指针或递归。
  • 回文链表:快慢指针找中点 → 反转后半段 → 比较。
  • 删除倒数第 N 个节点:双指针,快指针先走 N 步,再同步前进直到快指针到尾。
  • 随机链表复制:哈希表映射旧节点到新节点,两次遍历分别建节点和连接 next/random。
  • 排序链表:归并排序,快慢指针找中点后递归,O(n log n),O(log n) 空间。
  • LRU 缓存:哈希表 + 双向链表,O(1) 实现 get 和 put。
  • 合并 K 个升序链表:最小堆(每次取堆顶合并)或分治归并。