链表有环找入口的问题

之前遇到过这个问题,记得方法是先分别用两个快、慢指针,让他们在环中相遇,然后一个从头结点,一个从相遇点,都一次走一步,相遇点即为入口点。
但是关于这个结论的证明,看了网上好几个博客,感觉都说的不够清晰,印象中有一篇讲得还不错,还算理解了它的思想,今天做题时想要去搜结果搜不到了。
这里写下我自己的一点理解:
这里写图片描述
其中p点为快慢指针的相遇点。
下面要证明的问题是,一个指针从p点开始,另一个指针从head开始,一定会在q点(入口点相遇)。

首先根据p是快慢指针的相遇点:
2(l1+s)=l1+s+kl2 ,其中 k=1,2,3,...
移项得: l1=(k1)l2+l2s
其物理含义就是说从head开始到入口点的距离,和从 p 点开始在环上走n(n=0,1,2,...)圈再加上p到入口点的距离相等。
其证明就是这么简洁,其实就是数学等式的一个简单变形,然后用物理解释其含义。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值