之前遇到過這個問題,記得方法是先分別用兩個快、慢指針,讓他們在環中相遇,然後一個從頭結點,一個從相遇點,都一次走一步,相遇點即爲入口點。
但是關於這個結論的證明,看了網上好幾個博客,感覺都說的不夠清晰,印象中有一篇講得還不錯,還算理解了它的思想,今天做題時想要去搜結果搜不到了。
這裏寫下我自己的一點理解:
其中p點爲快慢指針的相遇點。
下面要證明的問題是,一個指針從p點開始,另一個指針從head開始,一定會在q點(入口點相遇)。
首先根據p是快慢指針的相遇點:
移項得:
其物理含義就是說從head開始到入口點的距離,和從
其證明就是這麼簡潔,其實就是數學等式的一個簡單變形,然後用物理解釋其含義。