Skip to content

Latest commit

 

History

History
35 lines (35 loc) · 1.91 KB

0.链表总结.md

File metadata and controls

35 lines (35 loc) · 1.91 KB
  • 快慢指针法/双指针法
    • 19 删除链表的倒数第 N 个结点
    • 141 环形链表
    • 142 环形链表 II
    • 876 链表的中间节点
    • 1721 交换链表中的节点
  • 链表常规操作:遍历,reverse,merge
    • 2 两数相加:不要忘记最后的remainder
    • 21 合并两个有序链表
    • 86 分割链表
    • 147 对链表进行插入排序: 一个指针顺序遍历,一个指针从头寻找插入位置,创建新的有序节点
    • 206 反转链表:newnode,交替向前
    • 725 分隔链表:先插入result,再遍历到位置断开链接
    • [剑指 Offer 06]. 从尾到头打印链表
  • 修改link
    • 24 两两交换链表中的节点
    • 61 旋转链表
    • 82 删除排序链表中的重复元素 II:要向前判断两步
    • 83 删除排序链表中的重复元素
    • 138 复制带随机指针的链表: 注意Dict第一遍只创建val, 注意加入None节点
    • 203 移除链表元素
    • 237 删除链表中的节点
    • 328 奇偶链表: 不需要新节点,只需要遍历偶数节点,然后交叉赋值
  • 组合题:用到多个链表操作,
    • 23 合并K个升序链表:归并排序,递归合并两个链表+sort merge
    • 92 反转链表 II:找到倒数N节点+翻转链表+合并链表
    • 143 重排链表v:中间节点+翻转链表+合并链表【原地合并:第二个合并到第一个链表上】
    • 148 排序链表: 归并排序,递归进行find_mid + sort merge【注意中间节点fast判断条件】
    • 234 回文链表:中间节点+翻转链表+遍历
  • 设计类
    • 146 LRU:双向链表,插入head(先建立node左右link,再插入),超过长度移除tail.prev, 移除是把元素左右node链接
    • 707 设计链表
  • 技巧题
    • 160 相交链表:不用技巧,常规解法是把两个链表拼接到相同长度,然后开始遍历寻找相同节点
    • 382 链表随机节点:蓄水池算法,第K个节点有1/K的概率被采样
close