刷题参考
一、 链表
链表类型: 单链表 双链表 循坏链表
通常使用虚拟头节点,在对head头节点处理的时候会比较方便。链表中也经常用到双指针; 快慢指针,slow=slow.next,fast=fast.next.next;
数组和链表的插入/删除/查询时间复杂度对比

1. 🗡☞Offer35 复杂链表的复制 题解1 题解2
2. 203. 移除链表元素 题解
3. 707. 设计链表 题解
4. 206. 反转链表 题解
5. 19. 删除链表(单链表)的倒数第N个节点 题解
6. 142. 环形链表入口 题解
7. 21. 合并两个有序的链表 题解
8. 160. 两个链表相交(找两个链表的公共节点) 题解
9. 148. 链表排序 要求时间复杂度O(nlogn) 题解1
10. 141. 链表是否有环形判断(类似6. 142. 判断环形链表入口) 题解
11. 234. 回文链表判断 题解
12. 146. LRU缓存机制实现(hash+双向链表) 题解
13. 202. 快乐数 题解
二、队列和栈
1. 232. 用栈实现队列 题解
2. 225. 用队列实现栈 题解
3. 20. 括号匹配 题解
4. 1047. 删除字符串中所有重复的相邻项 题解
5. 150. 逆波兰表达式求值 题解
6. 239. 滑动窗口最大值 题解
7. 347. 前k个高频元素 题解
8. 71. 简化路径 题解