链表相交以及找循环链表入口
生活随笔
收集整理的這篇文章主要介紹了
链表相交以及找循环链表入口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鏈表相交需要判斷有無循環,無循環直接找最后一個節點進行比較,有循環找某個循環點然后看看另一條是否也有這個點。
?
找循環鏈表入口比較牛逼:
在p2和p1第一次相遇的時候,假定p1走了n步,環路的入口是在h步的時候經過的,那么有
? p1走的路徑: h+c = n;???????? c為p1和p2相交點,距離環路入口的距離
? p2走的路徑: h+c+k*r = 2*n;??? r為環路的周長,k是整數
顯然,如果從h+c點開始,p1再走n步驟的話,還可以回到h+c這個點
同時p2從頭開始走的話,經過n步,也會達到h+c這點
顯然在這個步驟當中p1和p2只有前h步走的路徑不同,所以當p1和p2再次重合的時候,必然是在鏈表的環路入口點上。
轉載于:https://www.cnblogs.com/yutoulck/p/4024844.html
總結
以上是生活随笔為你收集整理的链表相交以及找循环链表入口的全部內容,希望文章能夠幫你解決所遇到的問題。