File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change 4343 * [ 链表:一道题目考察了常见的五个操作!] ( https://mp.weixin.qq.com/s/Cf95Lc6brKL4g2j8YyF3Mg )
4444 * [ 链表:听说过两天反转链表又写不出来了?] ( https://mp.weixin.qq.com/s/pnvVP-0ZM7epB8y3w_Njwg )
4545 * [ 链表:环找到了,那入口呢?] ( https://mp.weixin.qq.com/s/_QVP3IkRZWx9zIpQRgajzA )
46+ * [ 链表:总结篇!] ( https://mp.weixin.qq.com/s/vK0JjSTHfpAbs8evz5hH8A )
4647
4748* 哈希表
4849 * [ 关于哈希表,你该了解这些!] ( https://mp.weixin.qq.com/s/g8N6WmoQmsCUw3_BaWxHZA )
133134 * [ 回溯算法:求组合问题!] ( https://mp.weixin.qq.com/s/OnBjbLzuipWz_u4QfmgcqQ )
134135 * [ 回溯算法:组合问题再剪剪枝] ( https://mp.weixin.qq.com/s/Ri7spcJMUmph4c6XjPWXQA )
135136 * [ 回溯算法:求组合总和!] ( https://mp.weixin.qq.com/s/HX7WW6ixbFZJASkRnCTC3w )
137+ * [ 回溯算法:电话号码的字母组合] ( https://mp.weixin.qq.com/s/e2ua2cmkE_vpYjM3j6HY0A )
138+ * [ ] ( )
136139
137140(持续更新中....)
138141
Original file line number Diff line number Diff line change @@ -132,5 +132,45 @@ public:
132132 }
133133};
134134```
135+
136+ ## 补充
137+
138+ 在推理过程中,大家可能有一个疑问就是:** 为什么第一次在环中相遇,slow的 步数 是 x+y 而不是 x + 若干环的长度 + y 呢?**
139+
140+ 即文章[ 链表:环找到了,那入口呢?] ( https://mp.weixin.qq.com/s/_QVP3IkRZWx9zIpQRgajzA ) 中如下的地方:
141+
142+ <img src =' ../pics/142环形链表5.png ' width =600 > </img ></div >
143+
144+
145+ 首先slow进环的时候,fast一定是先进环来了。
146+
147+ 如果slow进环入口,fast也在环入口,那么把这个环展开成直线,就是如下图的样子:
148+
149+ <img src =' ../pics/142环形链表3.png ' width =600 > </img ></div >
150+
151+ 可以看出如果slow 和 fast同时在环入口开始走,一定会在环入口3相遇,slow走了一圈,fast走了两圈。
152+
153+ 重点来了,slow进环的时候,fast一定是在环的任意一个位置,如图:
154+
155+ <img src =' ../pics/142环形链表4.png ' width =600 > </img ></div >
156+
157+ 那么fast指针走到环入口3的时候,已经走了k + n 个节点,slow相应的应该走了(k + n) / 2 个节点。
158+
159+ 因为k是小于n的(图中可以看出),所以(k + n) / 2 一定小于n。
160+
161+ ** 也就是说slow一定没有走到环入口3,而fast已经到环入口3了** 。
162+
163+ 这说明什么呢?
164+
165+ ** 在slow开始走的那一环已经和fast相遇了** 。
166+
167+ 那有同学又说了,为什么fast不能跳过去呢? 在刚刚已经说过一次了,** fast相对于slow是一次移动一个节点,所以不可能跳过去** 。
168+
169+ 好了,这次把为什么第一次在环中相遇,slow的 步数 是 x+y 而不是 x + 若干环的长度 + y ,用数学推理了一下,算是对[ 链表:环找到了,那入口呢?] ( https://mp.weixin.qq.com/s/_QVP3IkRZWx9zIpQRgajzA ) 的补充。
170+
171+ # 总结
172+
173+ 这次可以说把环形链表这道题目的各个细节,完完整整的证明了一遍,说这是全网最详细讲解不为过吧,哈哈。
174+
135175> 更多算法干货文章持续更新,可以微信搜索「代码随想录」第一时间围观,关注后,回复「Java」「C++」 「python」「简历模板」「数据结构与算法」等等,就可以获得我多年整理的学习资料。
136176
You can’t perform that action at this time.
0 commit comments