摘要: 如何判断链表环的入口位置?一个指针从头开始单步走,一个指针从第一次相遇位置开始单步走,再相遇的位置就是环入口,证明如下:设链表头到环入口位置距离为a,入口位置到第一次相遇位置为b,相遇位置回到入口位置距离为c。1、每次走一步的慢指针走了s步,则快指针走了2s步。s=a+b。相遇时慢指针一定没走完一圈。2、快指针走的总步数为a+b+n(b+c),走到相遇位置,并走了n圈。因此a+b+n(b+c)=2*(a+b)a=n(b+c)-b=(n-1)(b+c)+c,也就证明了上面所提的方法。class linklist{public: int val; linklist *next; ... 阅读全文
posted @ 2013-08-13 11:17 iyjhabc 阅读(167) 评论(0) 推荐(0) 编辑