給定一個鏈表掉奄,判斷鏈表中是否有環(huán)。
為了表示給定鏈表中的環(huán)凤薛,我們使用整數(shù) pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)姓建。 如果 pos 是 -1诞仓,則在該鏈表中沒有環(huán)。
示例 1:
輸入:head = [3,2,0,-4], pos = 1
輸出:true
解釋:鏈表中有一個環(huán)速兔,其尾部連接到第二個節(jié)點狂芋。
示例 2:
輸入:head = [1,2], pos = 0
輸出:true
解釋:鏈表中有一個環(huán),其尾部連接到第一個節(jié)點憨栽。
示例 3:
輸入:head = [1], pos = -1
輸出:false
解釋:鏈表中沒有環(huán)。
進階:
你能用 O(1)(即翼虫,常量)內(nèi)存解決此問題嗎屑柔?
解題思路
class Solution:
def hasCycle(self, head: ListNode) -> bool:
#快慢指針處理,如果存在循環(huán)珍剑,快指針最后會等于慢指針
if head== None or head.next == None: return False
left = right = head
while left and right:
try:
left = left.next
right = right.next.next
except:
return False
if left == right:
return True
return False