【数据结构与算法】带环单链表查找环的入口算法
生活随笔
收集整理的這篇文章主要介紹了
【数据结构与算法】带环单链表查找环的入口算法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
帶環(huán)單鏈表的故事
@不了解前塵往事的Reader,煩請(qǐng)閱讀——《判斷單鏈表是否有環(huán)的算法》
如何找?guī)Лh(huán)單鏈表的環(huán)的入口
這里只說(shuō)比較可行的算法吧。
思路一:HashSet第一個(gè)重復(fù)元素就是環(huán)的入口
按照查找單鏈表帶環(huán)的思路二,我們用一個(gè)HashSet維護(hù)已經(jīng)跑過(guò)的元素,當(dāng)重復(fù)的時(shí)候,那個(gè)結(jié)點(diǎn)就是環(huán)的入口。這法子還算好使,不過(guò)還是老問(wèn)題——空間復(fù)雜度大。
思路二:再開一個(gè)指針與當(dāng)前指針相會(huì)
我們當(dāng)前雙指針停在交匯處,這里有一個(gè)位置。
思來(lái)想去我還是給大家畫個(gè)圖吧:
有兩個(gè)畫錯(cuò)的地方:就是其實(shí)l1應(yīng)該由node4畫到node7,再就是node6上的線應(yīng)該把焦點(diǎn)改到node7。
大家也讀過(guò)上面的文章應(yīng)該也知道我的測(cè)試數(shù)據(jù)是:
node1 → node2 → node3 → node4 → node5 → node6 → node7 → node8 → node9 → node4。
總結(jié)
以上是生活随笔為你收集整理的【数据结构与算法】带环单链表查找环的入口算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【数据结构与算法】二叉堆与二叉搜索树的区
- 下一篇: 使用 Warshall(沃舍尔)算法求解