您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“python怎么判斷鏈表是否有環”,內容詳細,步驟清晰,細節處理妥當,希望這篇“python怎么判斷鏈表是否有環”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
在判斷是否有環前,需要先知道什么是鏈表中的環?
如下所示的鏈表有5個節點組成,框內的數字代表編號,也可理解為節點的地址。注意區分地址值和鏈表的數據域是完全不同的:
節點0指向節點3,而節點10又指向節點3,所以節點3就是環的入口,形成如下所示的一個環:
如果像下面這樣遍歷一個有環鏈表:
# head 是鏈表的頭
while head:
print(head.data)
head = head.next
程序將會進入死循環,會在環內無窮的跑下去。
所以,研究如何判斷鏈表是否有環,是一個非常有意義的課題,也是面試中常考的。
通過哈希的方法,代碼比較好理解:
class Solution(object):
def hasCycle(self, head):
s = set()
tmp = head
while tmp:
if tmp in s:
return True
s.add(tmp)
tmp = tmp.next
return False
讀到這里,這篇“python怎么判斷鏈表是否有環”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。