快慢指针,巧妙寻找位置 | | 序号 | 题目 | 备注 | | —- | —- | —- | —- | | 2022/2/23 N=10 | | | | |
- [x]| 19 | 删除链表的倒数第 N 个结点 | 快慢指针,虚拟头指针 | |
- [x]| 21 | 合并两个有序链表 | 递归调用或迭代 | |
- [x]| 23 | 合并K个升序链表 | 二分法两两合并 | |
- [x]| 24 | 两两交换链表中的节点 | 虚拟头指针,pre&cur | |
- [x]| 25 | K 个一组翻转链表 | 根据链表长度逐组翻转/
递归调用(原始head可用连接下一组) | |
- [x]| 61 | 旋转链表 | 连接收尾进行旋转(取余减少次数) | |
- [x]| 82 | 删除排序链表中的重复元素 II | 还是分情况讨论更清晰 | |
- [x]| 83 | 删除排序链表中的重复元素 | 遇到相等即吞并 | |
- [x]| 86 | 分隔链表 | 顺序扫描 | |
- [x]| 92 | 反转链表 II | 常规反转基础上将null变为后续链表 | | 2022/2/24 N=11 | | | | |
- [x]| 109 | 有序链表转换二叉搜索树 | 由于是有序,只要二分法取中点作为根节点即可
使用快慢指针或推入数组取中点 | |
- [x]| 138 | 复制带随机指针的链表 | 先在原链表基础上double新链表(方便链接关系的复制)最后提取新链表并还原旧链表 | |
- [x]| 141 | 环形链表 | 节点放入set中/快慢指针能否相遇 | |
- [x]| 142 | 环形链表 II | 快慢指针相遇后等速指针重新相遇
非环s 环c 第一次相遇点距环入口m
(s+c+m) = 2*(s+m)
c-m = s | |
- [x]| 143 | 重排链表 | 快慢指针取中点,后半逆序,间隔重排 | |
- [x]| 147 | 对链表进行插入排序 | - | |
- [x]| 148 | 排序链表nlogn | 归并排序&递归调用 | |
- [x]| 160 | 相交链表 | 两个链表交叉相连使其等长 注意轮数控制 | |
- [x]| 203 | 移除链表元素 | - | |
- [x]| 206 | 反转链表 | - | |
- [x]| 234 | 回文链表 | 快慢指针取中点,
放入array中识别/反转一半后对比 | |
- [ ]| 237 | | | |
- [ ]| 328 | | | |
- [ ]| 369 | | | |
- [ ]| 379 | | | |
- [ ]| 426 | | | |
- [ ]| 430 | | | |
- [ ]| 445 | | | |
- [ ]| 707 | | | |
- [ ]| 708 | | | |
- [ ]| 725 | | | |
- [ ]| 817 | | | |
- [ ]| 876 | | | |
- [ ]| 1019 | | |