题解 | #链表中环的入口结点#

链表中环的入口结点

http://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4

class Solution {
public:
    ListNode* EntryNodeOfLoop(ListNode* pHead) {
        ListNode* p=pHead;
        while(p)
        {
            ListNode *tmp=p->next;
            if(p==tmp)
                return p;
            p->next=p;
            p=tmp;
        }
        return NULL;
    }
};
class Solution {
public:
    ListNode* EntryNodeOfLoop(ListNode* pHead) {
        ListNode* slow=pHead,*fast=slow;
        //使用快慢指针
        if(slow==slow->next)
            return slow;
        if(!slow->next)
            return NULL;
        while(slow&&fast&&fast->next)
        {
            slow=slow->next;
            fast=fast->next->next;
           if(slow==fast)
               break;
        }
        if(fast==NULL)
            return NULL;
        ListNode* p=pHead;
        while(p!=slow)
        {
            p=p->next;
            slow=slow->next;
         }
         return p;
    }
};

图片说明

全部评论

相关推荐

八极星:有什么不能问的,(/_\),这又不是多珍贵的机会,你有什么可失去的
点赞 评论 收藏
分享
刷牛客的单身狗很认真:全国可飞,支持007 上班时间,是吧?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务