劍指Offer 141 js 環形鍊錶

2021-10-16 01:43:04 字數 835 閱讀 4525

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

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

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

慢指標一次走一步,快指標一次走兩步,快指標追上慢指標,說明有環

舉例:400m 操場,小明一次跑 2 公尺,小梁一次跑 1 公尺,小梁跑一圈(400m)後小明(800m)追上小梁

const

hascycle

=(head)

=>

// 設定快慢指標

let slow = head;

let fast = head.next;

// 如果快指標一直沒有追上慢指標

while

(slow !== fast)

slow = slow.next;

fast = fast.next.next;

}// 如果有環,那麼快指標會追上慢指標

?資料結構專欄:劍指 offer 題解 + js **

og.csdn.net/weixin_43786756/category_10716516.html)

?github筆記 :ruoruochen github

141 環形鍊錶 JS 鍊錶

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

141 環形鍊錶(JS實現)

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

劍指offer 鍊錶

單向鍊錶的結構定義 typedef int datatype struct listnode 問題1 往鍊錶的末尾新增乙個結點 給定頭結點,往末尾插入乙個結點 void insertnode listnode head,datatype key listnode p head while p nex...