判斷鍊錶中是否有環;
提公升:空間複雜度為o(1)
考察的就是第三種方法,其餘的方法都是相對投機取巧的方式來實現的;
classsolution(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.首先想到...