刷题-1-34.链表中环的入口结点

刷题-1-34.链表中环的入口结点

题目来源:acwing网站:https://www.acwing.com/problem/content/86/

给定一个链表,若其中包含环,则输出环的入口节点。

若其中不包含环,则输出null

样例

给定如上所示的链表:
[1, 2, 3, 4, 5, 6]
2
注意,这里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。

则输出环的入口节点3.

思路参考y总

题目用双指针,快慢指针,也就是一快一慢;

设定第一个指针first为慢,每次都走一步,设定第二个指针second为快,每次都走两步,如果second在走得过程中遇到null(每走一步就判断一次是否走到null),如果遇到null就直接返回null;

当first和second第一次相遇是,first回到head的位置,second在原地,之后的每一步都是每个指针都走一步,直到再次相遇是就是环的入口结点;

证明:

自己大概看了y总的证明(https://www.acwing.com/solution/content/741/)之后试着自己手写一下证明过程;

全部评论

相关推荐

吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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