Linked List Cycle II
如果给定的单向链表中存在环,则返回环起始的位置,否则返回为空。最好不要申请额外的空间。
方法:首先创建两个指针——一个慢,一个快,快指针是慢指针速度的两倍,如果两个指针相撞,那么表明链表中有环,然后在创建一个指针从头开始,和相撞的指针以相同速度运行,相撞时的地点为B
原理:慢指针运行路径为x+k(y+z)+y,快指针运行路径为x+t(y+z)+y,由于快指针是慢指针速度两倍,则x+t(y+z)...
原创
2019-03-04 14:53:21 ·
170 阅读 ·
0 评论