環形鍊錶判斷

2022-06-09 19:42:09 字數 502 閱讀 4738

141-環形鍊錶

思路:將訪問過的放到乙個容器中,然後判斷當前訪問的節點是否已經存在容器內

**:

//

141-1 放到容器中,判斷當前的節點是否在已訪問的容器內

bool hascycle(listnode *head)

return

false

;}

提交後:5%,時間複雜度o(n),空間複雜度o(n),因為使用了額外的容器

解答二:雙指標法--快慢指標

思路:兩個指標同時指向head,乙個每次移動乙個節點,乙個每次移動兩個節點,如果兩個節點在某一時刻相遇,則有環;如果某個指標指向了nullptr則無環

原理:兩個人繞跑道跑步,快的最終會套圈跑的慢的,也即是兩者一段時間後必須相遇。

**:

//

快慢指標

bool hascycle2(listnode *head)

return

true

;}

判斷環形鍊錶

最開始想到的處理方式是整個陣列,把鍊錶元素乙個乙個放進去,直到有重複的,class solution def hascycle self,head listnode bool tgt while head head head.next if head and head.val in tgt retu...

鍊錶 (判斷環形鍊錶)演算法

coding utf 8 author leadingme mail leadingme qq.com mywebsite leadingme.top 環形鍊錶 演算法要求 給定乙個鍊錶,判斷鍊錶中是否有環 為了表示給定鍊錶的環,這裡使用整數pos來表示鍊錶尾部連線到鍊錶中的位置 索引從0開始 如果...

環形鍊錶的判斷

給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第二個節點。示例 2 輸...