做题表
总览
新做
复习
链表
一、指针操作型
206 反转链表 done
92 反转链表 II todo
25 K个一组翻转 todo
61 旋转链表 todo
24 两两交换节点 todo
二、双指针型(快慢指针)
141 环形链表 / 142 环形链表 II(判环、找入环口——Floyd 判圈,数学推导是亮点)
876 链表的中间结点
19 删除倒数第 N 个节点(经典 dummy + 快慢指针)
160 相交链表(浪漫解法:双指针走完自己的路再走对方的路)
三、合并/拆分类
21 合并两个有序链表 todo
23 合并 K 个 todo
86 分隔链表 todo
四、综合应用型(前面的组合技)
143 重排链表 = 找中点(②) + 反转后半段(①) + 交替合并(③)
234 回文链表 = 找中点 + 反转 + 比较,面试超高频,因为它一道题考三个子技能
146 LRU 缓存 = 哈希表 + 双向链表,工程价值最高,你工作里写缓存/淘汰逻辑就是这个的真实版
层序遍历/bfs/dfs/队列
母题
leetcode 102 二叉树的层序遍历
二叉树/层序遍历/bfs/队列 done
进阶
1.层序遍历变体
leetcode 199 二叉树的右视图 102的改进
bfs/队列做法 done
追问不用对列使用dfs做法 todo
leetcode 103 锯齿形层序遍历 todo
leetcode 515 在每个树行中找最大值
2.BFS经典
111. 二叉树的最小深度
104. 二叉树的最大深度
101. 对称二叉树
3.纯 Queue/双端队列
225. 用队列实现栈
232. 用栈实现队列
239. 滑动窗口最大值