链表-链表中是否有环-7
参考:
https://blog.csdn.net/qq_43547155/article/details/119871218
利用两个指针
首先创建两个指针p1和p2(在Java里就是两个对象引用),让它们同时指向这个链表的头节点。然后开始一个大循环,在循环体中,让指针p1每次向后移动1个节点,让指针p2每次向后移动2个节点,然后比较两个指针指向的节点是否相同。如果相同,则可以判断出链表有环,如果不同,则继续下一次循环。
public static boolean isLinkCycle(Node head){
Node p1 = head;
Node p2 = head;
while(p2 != null && p2.next != null){
p1 = p1.next;
p2 = p2.next.next;
if(p1 == p2){
return true;
}
return false;
}

浙公网安备 33010602011771号