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

  

posted @ 2022-04-13 14:30  qmhl开到荼蘼  阅读(26)  评论(0编辑  收藏  举报