no message
This commit is contained in:
parent
0daf1bd097
commit
edab31e4b8
@ -22,6 +22,23 @@ function reverseList(head) {
|
|||||||
|
|
||||||
### 环形链表判断
|
### 环形链表判断
|
||||||
|
|
||||||
|
**什么是环形链表?**
|
||||||
|
环形链表是指链表中某个节点的 `next` 指针指向了链表中之前的某个节点,从而形成一个闭环。遍历这种链表时会陷入无限循环,永远无法到达 `null`。
|
||||||
|
|
||||||
|
```
|
||||||
|
正常链表: 1 -> 2 -> 3 -> 4 -> null
|
||||||
|
环形链表: 1 -> 2 -> 3 -> 4
|
||||||
|
↑ ↓
|
||||||
|
└─────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
**实际应用场景:**
|
||||||
|
- **内存泄漏检测**:对象间循环引用导致垃圾回收器无法回收,需要检测环
|
||||||
|
- **死锁检测**:进程等待资源形成环形依赖时会发生死锁
|
||||||
|
- **约瑟夫环问题**:n 个人围成一圈报数淘汰的经典算法问题
|
||||||
|
- **循环播放列表**:音乐/视频循环播放时最后一项指向第一项
|
||||||
|
- **游戏地图边界**:无缝世界地图从一端走到另一端
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// 快慢指针法:如果有环,快指针一定会追上慢指针
|
// 快慢指针法:如果有环,快指针一定会追上慢指针
|
||||||
function hasCycle(head) {
|
function hasCycle(head) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user