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

链表中环的入口结点

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

做该题前,建议先做另一道题:判断链表是否有环。第一道题吃透了,再来看这道题,就是在其基础上找入口点。

核心思想还是:链接参考他人

借这里分享一下c的代码实现

struct ListNode* EntryNodeOfLoop(struct ListNode* pHead ) {
    // write code here
    int exist=0;
    
    if(pHead == NULL)
    {
        return pHead;
    }
    
    struct ListNode * temp=pHead;
    struct ListNode * slow=pHead;
    struct ListNode * fast=pHead;
    
    while(fast != NULL && fast->next != NULL)
    {
        slow=slow->next;
        fast=fast->next->next;
        if(slow == fast)
        {
            exist=1;
            break;
        }
    }
    
    // 有无环
    if(exist == 0)
    {
        return NULL;
    }
    // 有环,找入口节点
    while(temp != slow)
    {
        temp=temp->next;
        slow=slow->next;
    }
    
    return temp;
}
全部评论

相关推荐

牛客ID:561366855:期望薪资多少?难以相信这简历找不到工作。说明二本电子信息专业想对口就业非常难。
点赞 评论 收藏
分享
好久没来牛客了,今天面试了一个实习生,感觉对方形象乱糟糟的,头发像鸡窝,像刚睡醒就来面试了,第一印象直接大打折扣,感觉我没有受到应有的尊重,再加上对方业务能力也一般,我直接挂掉;大家面试的时候还是好好收拾一下自己吧,争取给面试官留下个好印象,面试这东西还是存在眼缘的
MinJerous:更在乎本质,应该看候选人是否和岗位需要的能力匹配。洗脸/不洗头都无所谓吧,说不定人家刚刚通宵准备,就是为了这场面试呢?你挂掉他核心原因还是他能力不行,而不是形象。就算形象好点,能力不行你敢给过吗,不怕后面+1质疑你
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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