码迷,mamicode.com
首页 > 其他好文 > 详细

链表中环的入口结点

时间:2017-06-06 15:58:36      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:color   div   blog   entry   logs   fast   span   node   bre   

题目

  一个链表中包含环,请找出该链表的环的入口结点。

 

分析

  首先检查该链表是否为环,设置一个快指针fast,每次走两步,一个慢指针slow,每次走一步。若fast==null或fast.next==null,表示不存在环;当fast==slow时,存在环。

     将fast指向链表头,每次走一步,slow还是每次走一步,当fast与slow相遇时,即为环的入口结点。

 

代码

 1   public ListNode EntryNodeOfLoop(ListNode pHead){
 2         if(pHead==null)
 3             return null;
 4         ListNode slow = pHead, fast = pHead;
 5         while(true){
 6             if(fast==null)
 7                 return null;
 8             slow = slow.next;
 9             fast = fast.next.next;
10             if(slow==fast)
11                 break;
12         }
13         fast = pHead;
14         while(fast!=slow){
15             fast = fast.next;
16             slow = slow.next;
17         }
18         return fast;
19     }

 

链表中环的入口结点

标签:color   div   blog   entry   logs   fast   span   node   bre   

原文地址:http://www.cnblogs.com/jiqianqian/p/6951651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!