链表-链表中是否有环-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; }