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

链表中环的入口结点

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;
    }
};

图片说明

全部评论

相关推荐

03-27 17:33
门头沟学院 Java
代码飞升:同学院本,你要注意hr当天有没有回复过,早上投,还要打招呼要推销自己,不要一个劲投
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务