給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。 如果鍊錶無環,則返回 null。題解中的floyed演算法為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鍊錶中沒有環。
說明:不允許修改給定的鍊錶。
示例 1:
輸入:head = [3,2,0,-4], pos = 1
輸出:tail connects to node index 1
解釋:鍊錶中有乙個環,其尾部連線到第二個節點。
示例 2:
輸入:head = [1,2], pos = 0
輸出:tail connects to node index 0
解釋:鍊錶中有乙個環,其尾部連線到第乙個節點
示例 3:
輸入:head = [1], pos = -1
輸出:no cycle
解釋:鍊錶中沒有環。
高階:你是否可以不用額外空間解決此題?
/**
* definition for singly-linked list.
* function listnode(val)
*//**
* @param head
* @return
*/var
detectcycle
=function
(head)}}
return
null;}
;
142環形鍊錶
題目描述 給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回 null。題解思路 採用雙指標法,設定乙個快指標,乙個慢指標,它們採取的步長不一樣,如果相遇,就代表鍊錶一定存在環 與環形鍊錶 一致 然後在前邊的迴圈裡利用慢指標尋找入環的第乙個節點,採用標記法,訪問過就標記其val值為99...
142 環形鍊錶
快慢指標,好像和之前的某道題相似 definition for singly linked list.struct listnode struct listnode detectcycle struct listnode head newlow newlow next low low next re...
142 環形鍊錶 II
還是快慢指標的問題,當發現有環時,將fast指向head,fast一次向前移動乙個節點,則fast和slow一定會在環的入口相遇.證明 設s為slow指標走的節點個數,m為環的入口距head的位置 則第一次相遇時,fast和head相對於環入口的位置相同,fast在環中的相對於環入口的位置在 2s ...