判斷環形鍊錶

2021-10-03 23:38:18 字數 774 閱讀 2481

最開始想到的處理方式是整個陣列,把鍊錶元素乙個乙個放進去,直到有重複的,

class

solution

:def

hascycle

(self, head: listnode)

->

bool

: tgt=

while head:

head=head.

next

if head and head.val in tgt:

return

true

return

false

結果,這鍊錶本身就可以有重複元素,那這個方法就用不了了

然後換了一種思路,好比讓倆人跑步,讓跑的快的領先跑得慢的一整圈就可以了,如果跑道是乙個圈的話

class

solution

:def

hascycle

(self, head: listnode)

->

bool

: a,b=head,head

while b and b.

next

: a=a.

next

b=b.

next

.next

if b is a:

return

true

return

false

**挺短,只不過效果貌似不大行。。

環形鍊錶判斷

141 環形鍊錶 思路 將訪問過的放到乙個容器中,然後判斷當前訪問的節點是否已經存在容器內 141 1 放到容器中,判斷當前的節點是否在已訪問的容器內 bool hascycle listnode head return false 提交後 5 時間複雜度o n 空間複雜度o n 因為使用了額外的容...

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

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 輸...