链表
难点:边界判断,指针指向
操作:迭代,递归
insertion: 147
deletion: 237, 203, 83, 82, 19
partition: 86, 328
reversion: 206, 24, 还有区间反转记得看
find middle, cycle: 876, 141, 142
intersection: 160
merge: 21, 23(一开始的impl很慢)
sort: 148
组合: 707, 234, 143(这两题前两步一样,都是先分割再反转,再比较或合并), 146(LRU)
其他: 817
什么地方学到过链表?
比如hashmap中的每一个bucket中存放的对象可以用链表连接存储,比如垃圾收集中的freelist,比如linux文件系统的inode,比如堆上对象的创建,比如poll(是不啦),比如图,还有比如某次作业存放jobs
数组和链表:
- 数组:长度确定,随机读写,容易实现
- 链表:长度不确定,边界增删频繁