判断单向链表中有没有形成环,如果形成环,请找出环的入口处,即P点
/*
*单链表的结点类
*/
class LNode{
//为了简化访问单链表,结点中的数据项的访问权限都设为public
public int data;
public LNode next;
}
class LinkListUtli {
//当单链表中没有环时返回null,有环时返回环的入口结点
public static LNode searchEntranceNode(LNode L)
{
LNode slow=L;//p表示从头结点开始每次往后走一步的指针
LNode fast=L;//q表示从头结点开始每次往后走两步的指针
while(fast !=null && fast.next !=null)
{
if(slow==fast) break;//p与q相等,单链表有环
slow=slow.next;
fast=fast.next.next;
}
if(fast==null || fast.next==null) return null;
// 重新遍历,寻找环的入口点
slow=L;
while(slow!=fast)
{
slow=slow.next;
fast=fast.next;
}
return slow;
}
}
解压密码: detechn或detechn.com
免责声明
本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。