141. 環形鍊錶
題目描述
給定乙個鍊錶,判斷鍊錶中是否有環。
如果鍊錶中有某個節點,可以通過連續跟蹤next
指標再次到達,則鍊錶中存在環。 為了表示給定鍊錶中的環,我們使用整數pos
來表示鍊錶尾連線到鍊錶中的位置(索引從 0 開始)。 如果pos
是-1
,則在該鍊錶中沒有環。注意:pos
不作為引數進行傳遞,僅僅是為了標識鍊錶的實際情況。
如果鍊錶中存在環,則返回true
。 否則,返回false
。
高階:
你能用 o(1)(即,常量)記憶體解決此問題嗎?
示例 1:
輸入:head = [3,2,0,-4], pos = 1
輸出:true
解釋:鍊錶中有乙個環,其尾部連線到第二個節點。
示例 2:
輸入:head = [1,2], pos = 0
輸出:true
解釋:鍊錶中有乙個環,其尾部連線到第乙個節點。
示例 3:
輸入:head = [1], pos = -1
輸出:false
解釋:鍊錶中沒有環。
題解:快慢指標。
設兩個指標s
和f
分別表示快慢指標,s
每次走一步,f
每次走兩步,如果鍊錶沒環,那麼f
直接走到鍊錶末尾空指標。如果有環,當s
走到環的入口處時,假設f
距離環的起點還需要x
步,那麼s
再走x
步,f
和s
即可相遇。
時間複雜度:o(n
)o(n)
o(n)
額外空間複雜度:o(1
)o(1)
o(1)
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
return
true;}
};/*記憶體:7.8mb,擊敗:74.56%
*/
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.首先想到...