2025考研
当前位置:首页 > 考研报考 > 考研复试

计算机考研复试试题整理:在链表里怎么找到环的入口

考研成为在校生和上班族的选择,他们不但想提高学历,还想有个好工作。小编整理了一道计算机考研复试试题,是在链表里怎么找到环的入口,来看看吧。

第一步,找环中相汇点。分别用p1,p2指向链表头部,p1每次走一步,p2每次走二步,直到p1==p2找到在环中的相汇点。

第二步,找环的入口。接上步,当p1==p2时,p2所经过节点数为2x,p1所经过节点数为x,设环中有n个节点,p2比p1多走一圈有2x=n+x; n=x;可以看出p1实际走了一个环的步数,再让p2指向链表头部,p1位置不变,p1,p2每次走一步直到p1==p2; 此时p1指向环的入口。

code

public class Solution {

ListNode EntryNodeOfLoop(ListNode pHead){

if(pHead == null || pHead.next == null)

return null;

ListNode p1 = pHead;

ListNode p2 = pHead;

while(p2 != null && p2.next != null ){

p1 = p1.next;

p2 = p2.next.next;

if(p1 == p2){

p2 = pHead;

while(p1 != p2){

p1 = p1.next;

p2 = p2.next;

}

if(p1 == p2)

return p1;

}

}

return null;

}

}

以上就是在链表里怎么找到环的入口的内容。要了解更多考研的内容,可以在右侧窗口留言,会有启航教育的老师一对一为大家做详细的介绍。

查看全文

【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。

上一篇:计算机考研复试试题整理:饥饿和死锁的区别 下一篇:考研复试:MPAcc复试注意事项

免责声明:本平台部分帖子来源于网络整理,不对事件的真实性负责,具体考研相关内容请以各院校的官网通知为准。如果本站文章侵犯到您的权利,请联系我们(400-108-7500)进行删帖处理。

精选课程

考研资讯

查看更多

                                         

考研备考

查看更多

考研指导

搜课程

热门搜索

搜索历史  

首页

课程

成长计划

研招

我的

每日10 份   抢先预约