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

链表中环的入口结点

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、在环存在的条件下,采用以上思路分析

全部评论

相关推荐

程序员花海_:项目描述写的太少了 多写一点 先写业务 再写技术
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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