问题描述:https://oj.leetcode.com/problems/linked-list-cycle/
如果你在网上搜索这个题的解法,肯定是使用两个指针,fast和slow,每次slow指针前进一步,fast指针前进两步,如果fast和slow不为null并且fast==slow,那么说明链表有环,但是真正给出解释的却寥寥无几矣,有的也只是硬生生的贴出来代码而已,连个文字解说都没有,实在搞不懂意义何在。最近趁下班时间,研究了一下,终于(自认为)弄明白了这种解法的可行性,所以写出来分享一下,顺便让众猿友看看有没有错误的地方。
所以,现在要求解的问题是如果链表存在环,那么pSlow和pFast为什么会相遇?
首先定义环的长度:环中结点的个数(或者环中链接的个数)
SHIT!!!, 昨晚刚用word做好图,打开csdn插入图片,尼玛,CSDN正在维护中,博客也写了一半,真是。。。索性把东西都写在word上了,都以图片的形式插入进来吧。
链表有环问题的深入理解:慢指针与快指针相遇原理
本文详细解析了链表有环问题中,慢指针(slow)与快指针(fast)相遇的原因及原理。通过定义环的长度,解释了在循环链表中,如何利用双指针法检测是否存在环,并深入探讨了指针相遇背后的数学逻辑。附带详细图文解析,帮助读者深入理解这一经典算法问题。
373

被折叠的 条评论
为什么被折叠?



