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