[leetcode] 142.环形链表2
生活随笔
收集整理的這篇文章主要介紹了
[leetcode] 142.环形链表2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個鏈表,返回鏈表開始入環的第一個節點。?如果鏈表無環,則返回?null。
為了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鏈表中沒有環。注意,pos 僅僅是用于標識環的情況,并不會作為參數傳遞到函數中。
說明:不允許修改給定的鏈表。
進階:
- 你是否可以使用?O(1)?空間解決此題?
示例 1:
輸入:head = [3,2,0,-4], pos = 1 輸出:返回索引為 1 的鏈表節點 解釋:鏈表中有一個環,其尾部連接到第二個節點。示例?2:
輸入:head = [1,2], pos = 0 輸出:返回索引為 0 的鏈表節點 解釋:鏈表中有一個環,其尾部連接到第一個節點。示例 3:
輸入:head = [1], pos = -1 輸出:返回 null 解釋:鏈表中沒有環。提示:
- 鏈表中節點的數目范圍在范圍?[0, 104]?內
- -105?<= Node.val <= 105
- pos?的值為?-1?或者鏈表中的一個有效索引
1.暴力解法
class Solution:def detectCycle(self, head: ListNode) -> ListNode:visited = set()curr = headwhile curr != None:if curr in visited:return currelse:visited.add(curr)curr = curr.next2.快慢指針
class Solution:def detectCycle(self,head:ListNode)->ListNode:fast = headslow = headwhile fast != None and fast.next != None:fast = fast.next.nextslow = slow.nextif fast==slow:breakif fast ==None or fast.next ==None:return Nonecur=headwhile cur != slow:cur = cur.nextslow = slow.nextreturn cur總結
以上是生活随笔為你收集整理的[leetcode] 142.环形链表2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [leetcode] 141.环形链表
- 下一篇: [leetcode] 160.相交链表