Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
<Solution>Can you solve it without using extra space?
這題是要判斷 linked list 是否有迴圈
想法如下
- 準備兩個指標,一個每次只往前一步,一個每次往前兩步
- 如果有迴圈的話,兩個指標就會重疊
c++
kotlin
後續補充
這道題目其實有個著名的演算法,叫做 Floyd's Cycle Detection Algorithm
可以處理三個問題
(1) 判斷有沒有 cycle
(2) 找到 cycle 的起點
(3) 找出 cycle 的長度
沒有留言:
張貼留言