給定乙個鍊錶,判斷鍊錶中是否有環。
如果鍊錶中有某個節點,可以通過連續跟蹤 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...