解题通用思路:
- 遍历法
- 通过引入一个另外的变量p或者cur等,来遍历整个链表,然后达到去重或者删除某个元素。需要注意最终返回的需要是原链表head,因为遍历修改了原链表
- 快慢指针法
- 一般出现在环形链表中,或者判断链表是否有环。两个指针。
- 分割
- 分割链表时,需要用一个新的指针变量去指。如果要分割两端,就把新的变量指针的某一个位置next指为空。同时要之前预先保留那个指针。
- let cur = prevQ; let next = cur.next; cur.next = null;
- 分割链表时,需要用一个新的指针变量去指。如果要分割两端,就把新的变量指针的某一个位置next指为空。同时要之前预先保留那个指针。
舍得用变量
节点+指针
- 双数组 data数组以及nex数组
应用场景:
- 操作系统底层分配
- LRU算法
- Map底层实现
- react diff也是map结构