141 環形鍊錶

2022-01-23 02:59:28 字數 1526 閱讀 8667

判斷鍊錶中是否有環;

提公升:空間複雜度為o(1)

考察的就是第三種方法,其餘的方法都是相對投機取巧的方式來實現的;

class

solution(object):

defhascycle(self, head):

"""執行用時 : 76 ms, 在linked list cycle的python提交中擊敗了9.34% 的使用者

記憶體消耗 : 18.2 mb, 在linked list cycle的python提交中擊敗了9.07% 的使用者

:type head: listnode

:rtype: bool

"""tmp = head

while

tmp:

ifgetattr(tmp, "is_visited", false):

return

true

tmp.is_visited = true

tmp = tmp.next

return

false

defhascycle(self, head):

"""執行用時 : 64 ms, 在linked list cycle的python提交中擊敗了14.15% 的使用者

記憶體消耗 : 18.7 mb, 在linked list cycle的python提交中擊敗了5.29% 的使用者

:type head: listnode

:rtype: bool

"""tmp = head

visited_set = set()

while

tmp:

tmp_id = id(tmp)

iftmp_id

invisited_set:

return

true

​visited_set.add(id(tmp))

tmp = tmp.next

return

false

defhascycle(self, head):

"""執行用時 : 64 ms, 在linked list cycle的python提交中擊敗了14.15% 的使用者

記憶體消耗 : 18.1 mb, 在linked list cycle的python提交中擊敗了9.32% 的使用者

:type head: listnode

:rtype: bool

"""if

nothead

ornot

head.next:

return

false

​tmp = head

next_tmp = head.next

while

next_tmp

andnext_tmp.next:

iftmp == next_tmp:

return

true

tmp = tmp.next

next_tmp = next_tmp.next.next

return

false

141 環形鍊錶

給定乙個鍊錶,判斷鍊錶中是否有環。高階 你能否不使用額外空間解決此題?乙個快指標走兩步 乙個慢指標走一步 如果相遇就有環 不然沒環 class solution def hascycle self,head type head listnode rtype bool index1 head inde...

141 環形鍊錶

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

141 環形鍊錶

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