2. 从单链表上,去掉环内空转的长度。我们其实不关心链表表头到入环结点的实际距离,我们只是为了求入环点,所以可以直接将快指针在环内空转的距离,从单链表上去掉。
这 2 个思考模型,都是为了帮助我们更好的理解和抽象问题,其实在「小环」的场景下,慢指针走到入环结点时,快指针已经在环内空转了很多圈了,所以其实这并不影响我们计算的结果。
找到入环结点,那么环的长度的算法,就是单链表求长度的算法,很简单,这里就不上代码了。
三、小结时刻
本文聊到了单链表如果有环,如何找到环的入口。举了两个解决方案,分别是哈希法和双指针法,双指针的方式,理解起来有一些绕,不过按照本文的步骤,多思考一下应该就可以理解。
这道题也是 leetcode 上第 142 题,我也是看到不少人在评论里,对官方的公式有疑问,所以才有了这篇文章。
算法没什么取巧的,多写多练多思考才是正途。
今天就到这里,本文对你有帮助吗?留言、转发、点收藏是最大的支持,谢谢!
,在头条号私信我。我会送你一些我整理的学习资料,包含:Android反编译、算法、设计模式、虚拟机、Linux、Kotlin、Python、爬虫、Web项目源码。