场景一:操作系统内的动态内存分配
场景二:LRU缓存淘汰算法
leetcode:
1.141.环形链表
思路一:
当要存入的节点,已经存在哈希表中,说明链表有环,遍历结束。
总结:我们只需要遍历这个链表,在遍历的过程中记录我们遍历过的节点。
如果遇见我们以前遍历过的节点,说明有环。
思路二:快慢指针
慢指针指向head节点,快指针指向head.next节点
当快指针的next节点为null,或者快指针本身节点为null时
说明该链表没有环,遍历结束。
如果链表有环,那么快慢指针一定会相遇,指向同一个节点,当指向同一个节点时,遍历结束。
题目就可以转化为,判断一个链表是否有环。
如果遍历某个节点为1,说明没环,就是快乐数
如果遍历到重复的节点值,说明有环,就不是快乐数。
- 141.环形链表
- 142.环形链表II
- 202.快乐数
- 206.反转链表
- 92.反转链表
- 25.k个一组反转链表
- 61.旋转链表