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

链表中环的入口结点

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

按照双指针思路,定义快慢指针,fast = fast.next.next, slow = slow.next; 假设快慢指针从A点出发,在C点相遇;同时 假设B为环的入口节点,当slow走到B点时,fast走到D点。

在t1时刻,fast与slow相遇在C点,此时 slow走过A->B-C,fast走过A->B->C->D->B->C,由于fast速度是slow的2倍,则A->B->C->D->B-C为2倍的A->B-C,推理可知C->D->B—>C等于A->B->C(即C->D->B等于A->B);

所有在相遇点C处,slow继续沿C->D->B,同时fast从A出发采用slow相同速度沿A->B,两者同时到达B即为环的入口;

需要注意的时:1、链表中是否存在环的临界判断 2、在环存在的条件下,采用以上思路分析

全部评论

相关推荐

10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
10-22 19:18
上海大学 后端
jopajhhdjwnqk:水印都叠杀人书了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务