Leetcode-142. 環形連結串列 II
給定一個連結串列,返回連結串列開始入環的第一個節點。 如果連結串列無環,則返回 null。
為了表示給定連結串列中的環,我們使用整數 pos 來表示連結串列尾連線到連結串列中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該連結串列中沒有環。
說明:不允許修改給定的連結串列。
來源:力扣(LeetCode)
思路說明
設:入環節點為M,入環之前路徑長度為a(不包括入環節點M),環長度為b。慢指標和快指標第一次相遇時慢指標走了s步,快指標走了f步。
顯然:f=2s,f=s+nb
即:s=nb,f=2nb。
又:從出發走a+nb步一定可以到M,因此此時讓慢指標走a步就可以找到M。
因此相遇後,把快指標移到head節點,同時和慢指標一步一步前移,二者一定在M處相遇。
程式碼如下:
public class Solution {
public ListNode detectCycle(ListNode head) {
ListNode slow=head;
ListNode fast=head;
while(fast!=null&&fast.next!=null){
fast=fast.next.next;
slow=slow.next;
if(slow==fast){
fast=head;
while(slow!=fast){
slow=slow.next;
fast=fast.next;
}
return slow;
}
}
return null;
}
}
相關文章
- 環形連結串列II
- LeetCode-142-環形連結串列 IILeetCode
- 每日leetcode——142. 環形連結串列 IILeetCode
- 環形連結串列I、II(含程式碼以及證明)
- 力扣學習筆記:142. 環形連結串列 II力扣筆記
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- 141. 環形連結串列
- 環形連結串列_相交連結串列_多數元素(java語言)Java
- java環形連結串列約瑟夫環問題筆記Java筆記
- 演算法141. 環形連結串列演算法
- Python實現環形連結串列詳解Python
- 每日演算法隨筆:環形連結串列演算法
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- Day4(連結串列)|24. 兩兩交換連結串列中的節點 & 19.刪除連結串列的倒數第N個節點 & 面試題 02.07. 連結串列相交 &142.環形連結串列II面試題
- **24. 兩兩交換連結串列中的節點****19.刪除連結串列的倒數第N個節點****面試題 02.07. 連結串列相交****142.環形連結串列II**面試題
- Day 4 | 24. 兩兩交換連結串列中的節點 、 19.刪除連結串列的倒數第N個節點 、面試題 02.07. 連結串列相交 、142.環形連結串列II面試題
- 第四天:● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II面試題
- Q22 LeetCode142 環形連結串列LeetCode
- [leetcode 92] 反轉連結串列 IILeetCode
- 連結串列面試題(十一)---求帶環單連結串列 環的入口點面試題
- 程式碼隨想錄第4天 | 24. 兩兩交換連結串列中的節點、19.刪除連結串列的倒數第N個節點、面試題 02.07. 連結串列相交、142.環形連結串列II面試題
- 程式碼隨想錄演算法訓練營第四天 | 連結串列 24.兩兩交換連結串列中的節點 19.刪除連結串列的倒數第N個節點 142.環形連結串列II演算法
- 連結串列面試題(十)---求帶環單連結串列的環的長度面試題
- 程式碼隨想錄演算法訓練營第4天 | 連結串列兩兩交換、刪除倒N、連結串列相交、環形連結串列演算法
- Linked List Cycle leetcode II java (尋找連結串列環的入口)LeetCodeJava
- 連結串列面試題(九)---判斷一個連結串列是否帶環面試題
- LeetCode-092-反轉連結串列 IILeetCode
- 約瑟夫環 佇列+連結串列佇列
- 04天【程式碼隨想錄演算法訓練營34期】 第二章 連結串列part02 (● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II )演算法面試題
- 程式碼隨想錄演算法訓練營day04|24.兩兩交換連結串列中的節點,19.刪除連結串列的倒數第N個節點,面試題 02.07.連結串列相交,142.環形連結串列II演算法面試題
- [演算法]向有序的環形單連結串列中插入新節點演算法
- 連結串列-雙向連結串列
- 連結串列-迴圈連結串列
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- 連結串列面試題(十三)---求兩個都不帶環的連結串列相交的結點面試題
- 連結串列找環(python實現)Python
- 連結串列面試題(八)---約瑟夫環面試題
- 連結串列4: 迴圈連結串列