日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(转)求单链表是否有环,环入口和环长

發(fā)布時間:2023/12/1 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转)求单链表是否有环,环入口和环长 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自:http://www.cnblogs.com/youxin/p/3303172.html

1.鏈表中是否有環(huán)的判斷 可以設(shè)置兩個指針(fast,slow),初始值均指向頭,slow每次向前一步,fast每次向前兩步; 如果鏈表中有環(huán),則fast先進(jìn)入環(huán)中,而slow后進(jìn)入環(huán)中,兩個指針在環(huán)中必定相遇; 如果fast遍歷到尾部為NULL,則無環(huán) 2.鏈表有環(huán),判斷環(huán)的入口點(diǎn) 當(dāng)fast若與slow相遇時,slow肯定沒有走遍歷完鏈表,而fast已經(jīng)在環(huán)內(nèi)循環(huán)了n圈(1<=n)。假設(shè)slow走了s步,則fast走了2s步(fast步數(shù)還等于s 加上在環(huán)上多轉(zhuǎn)的n圈),設(shè)環(huán)長為r,則:

2s = s + nr
s= nr

設(shè)整個鏈表長L,入口環(huán)與相遇點(diǎn)距離為x,起點(diǎn)到環(huán)入口點(diǎn)的距離為a。
a + x = nr
a + x = (n – 1)r +r = (n-1)r + L - a
a = (n-1)r + (L – a – x)

(L – a – x)為相遇點(diǎn)到環(huán)入口點(diǎn)的距離,由此可知,從鏈表頭到環(huán)入口點(diǎn)等于(n-1)循環(huán)內(nèi)環(huán)+相遇點(diǎn)到環(huán)入口點(diǎn)

轉(zhuǎn)載于:https://www.cnblogs.com/wrencai/p/5815805.html

總結(jié)

以上是生活随笔為你收集整理的(转)求单链表是否有环,环入口和环长的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。