这题有很多破坏链表结构的简单解法。。就先不考虑了。
在不破坏链表的情况下,可以使用哈希表法或者快慢指针,两种方法的时间代价都是O(n)。
其中哈希表法可以判断链表是否有环,或者用来找到环入口。和快慢指针法相比是空间代价为O(n)。
快慢指针法可以用来判断是否有环,求环的长度(快慢指针第二次相遇和第一次相遇中间,慢指针走的长度就是环长度),以及寻找环入口(从数学推导来看是可行的,,就是实现比较花功夫)。
推导如下(图片来自力扣某题解)
原文:https://www.cnblogs.com/dongjl/p/13589082.html