链表中环的入口结点

    ListNode* EntryNodeOfLoop(ListNode* pHead)
    {
        if(!pHead ||!pHead->next)
            return NULL;
        ListNode *fast = pHead;
        ListNode *slow = pHead;  
        
        while(fast && fast->next){
            fast = fast->next->next;
            slow = slow->next;
            if(slow == fast)
                break;
        }
        
        slow = pHead;
        while (slow != fast)  
        {  
             slow = slow->next;  
             fast = fast->next;  
        }  
        
        return slow;
    }

 

posted on 2017-02-28 11:12  123_123  阅读(94)  评论(0编辑  收藏  举报