按照常规来思考—— 一步一步走能不能遇到自己,遇到自己在环内;遇不到在环外。可是如果在环外的按照前面的思想,难免就进入了死循环 。
所以我们不妨换一个思路 :我们就从这个节点开始指定2个指针 :一个走2步 一个 走 一步;2步的每走一次都判断一次 它自己以及它的下一个节点是否和指定节点相同 如果和第一步指针相遇之前就和指定节点相同了必然是在环内 ; 如果是在环外通过和一步指针相遇来结束循环。
问题扩展:1 、如何求一个带环链表的节点个数 ;
2、如何求解带环链表中指定节点开始向前访问的不同的节点个数;
1题:简单很好解 在这不提。
2题 :利用上面知识先判断是在环内还是环外之后很好的解出来!
环外 :同1题解
环内 :同循环单链表