正常的链表的最后一个元素的next
为nullptr
,但是当一个链表存在环时,我们无法判断是否到达了尾部,是否遍历了一遍;
参考文档
如图所示,H
结点又重新指向结点E
;
方法
1、定义两个指针p1、p2
;
2、初始值二者都等于头节点A
;
3、p1
每次都移动两次:p1=p1->next->next
;
p2
每次移动一次:p2=p2->next;
4、循环操作,直到p1
到达终点或者两个指针指向同一个结点
5、若最终p1=p2
,则链表存在环,否则不存在;