Leetcode第141題 環形鍊錶

2021-10-13 05:26:01 字數 1261 閱讀 7870

給定乙個鍊錶,判斷鍊錶中是否有環。

如果鍊錶中存在環,則返回 true 。 否則,返回 false 。

示例 1:

輸入:head = [3,2,0,-4], pos = 1

輸出:true

解釋:鍊錶中有乙個環,其尾部連線到第二個節點。

示例 2:

輸入:head = [1,2], pos = 0

輸出:true

解釋:鍊錶中有乙個環,其尾部連線到第乙個節點。

示例 3:

輸入:head = [1], pos = -1

輸出:false

解釋:鍊錶中沒有環。

用快慢指標的思想判斷是否相交,進而判斷是否是環形鍊錶

1.定義兩個指標slow和fast,指向頭指標

2.slow一次移動一次,fast一次移動兩次

3.重複執行第2步,直到fast等於slow,返回true,退出迴圈 或者fast等於null或者fast->next等於null退出迴圈

4.執行結束後return false

fast為什麼走兩步:

兩步:當slow進入圓圈時,slow與fast的距離是x;

兩個同時走,他們的間距為x+1,x+2,x+3……直到等於圓的周長時相遇

三步:當slow進入圓圈時,slow與fast的距離是x;

兩個同時走,他們的間距為x+2,x+4……可能會超過圓的周長而不相遇

LeetCode第141題 環形鍊錶

給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第二個節點。defini...

LeetCode第141題環形鍊錶

題目描述 給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。解題思路 1 初步想法 沒有想法,估計是沒怎麼接觸鍊錶的題,看到別人的 用了兩個變數,乙個變數走一步,乙個變數走兩步,...

LeetCode第141題 環形鍊錶的判斷

給定乙個鍊錶,判斷鍊錶中是否有環。如果鍊錶中有某個節點,可以通過連續跟蹤 next 指標再次到達,則鍊錶中存在環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。注意 pos不作為引數進行傳遞,僅僅是為了標識鍊...