LeeCode142 環形鍊錶 II

2021-09-22 02:01:16 字數 491 閱讀 5915

給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。 如果鍊錶無環,則返回 null。

為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鍊錶中沒有環。

說明:不允許修改給定的鍊錶。

public listnode detectcycle

(listnode head)

}//空鍊錶或單節點不成環

if(fast == null || fast.next == null)

//2.找入環的第乙個節點

slow = head;

先讓slow回到頭

while

(fast != slow)

if(fast == slow)

return null;

}

時間複雜度:因為沒有迴圈的巢狀,所以為o(n)

空間複雜度:使用兩個指標,為o(1)

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 ...