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