求链表是否有环,及环入口,环长度

1:判断是否有环:

  两根指针同时遍历,一根每次走一步,另一根走两步。若两根指针相遇,则链表有环。

  

2:判断环入口:

  在未到入口时:快指针走一次超越慢指针一步,进入环后:快指针追赶慢指针一步。

  快指针比慢指针多走一或多圈,所以慢指针正好走一个环或多个的长度。

  因此,分别从碰撞点、头指针开始走,相遇的那个点就是连接点。

3:环长度

  碰撞后新的指针在环中遍历,重合时为环长度。

总结于:https://www.cnblogs.com/fankongkong/p/7007869.html

原文地址:https://www.cnblogs.com/D-Rui/p/9774420.html