判断单向链表中有没有形成环,如果形成环,请找出环的入口处,即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
免责声明
本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。