給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。 如果鍊錶無環,則返回 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 或者鍊錶中的乙個有效索引
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
listnode *fast=head;
listnode *slow=head;
while
(fast&&fast-
>next)}if
(slow!=fast)
fast=head;
while
(fast!=slow)
return slow;}}
;
142 環形鍊錶 II 力扣
題意理解 找乙個鍊錶中環形的起始結點位置。問題分析 鍊錶hash表法 雙指標法,快慢指標,每次一步,每次兩步。如果快慢指標相遇,說明有環 從相遇點到環開始點的距離和從表頭到環開始點的距離相同。其他hash表好想好實現,但是空間消耗o n 雙指標法不好想 尤其是找換開始結點 但是空間消耗低o 1 鏈結...
力扣 142 環形鍊錶 II
給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回 null。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。說明 不允許修改給定的鍊錶 該題目來自力扣題庫 示例示例1 輸出 tail conne...
力扣141 環形鍊錶 142環形鍊錶2
方法一 雜湊表 思路及演算法 最容易想到的方法是遍歷所有節點,每次遍歷到乙個節點時,判斷該節點此前是否被訪問過。具體地,我們可以使用雜湊表來儲存所有已經訪問過的節點。每次我們到達乙個節點,如果該節點已經存在於雜湊表中,則說明該鍊錶是環形鍊錶,否則就將該節點加入雜湊表中。重複這一過程,直到我們遍歷完整...