【演算法】2013創新工場校園招聘筆試題--如何求出帶環連結串列的入口節點
參考文章:
http://blog.163.com/song_0803/blog/static/4609759720120910373784/
因而,可以在連結串列頭,相遇點分別設定一個指標,每次各走一步,兩個指標必定相遇,則相遇第一點為環入口點。
從圖中可以分析a=(n-1)r+(L-a-x)的含義:
a代表在連結串列頭放置的節點p1走到入口點的路程,L-a-x代表相遇點的節點p2走完這麼多的路程就到達入口點,但是必須再走n-1圈,(此時路程與p1相同)
,正好首次相遇。
LinkList * ListLoop(LinkList *list) //判斷一個連結串列中是否有環,list為連結串列頭結點
{
int isLoop=0;
LinkList *fast,*slow;
fast=list;
slow=list;
while(fast&&fast->next)
{
slow=slow->next;
fast=fast->next->next;//fast每次兩步,slow每次一步
if(fast==slow) //當兩指標相等時,判斷連結串列中有環
{
isLoop=1;
break;
}
}
if(isLoop==1)//連結串列中有環時
{
slow=list;
while(slow!=fast)//一個頭指標,一個相遇點指標,兩個第一次相等時為環入口點
{
slow=slow->next;
fast=fast->next;
}
return slow;
}
else
{
cout<<"連結串列中沒有環";
return NULL;
}
}
相關文章
- 連結串列中環的入口結點
- JZ-055-連結串列中環的入口結點
- 判斷單連結串列中是否存在環,並輸出環入口節點。
- 牛客網高頻演算法題系列-BM7-連結串列中環的入口結點演算法
- **24. 兩兩交換連結串列中的節點****19.刪除連結串列的倒數第N個節點****面試題 02.07. 連結串列相交****142.環形連結串列II**面試題
- Day4(連結串列)|24. 兩兩交換連結串列中的節點 & 19.刪除連結串列的倒數第N個節點 & 面試題 02.07. 連結串列相交 &142.環形連結串列II面試題
- Day 4 | 24. 兩兩交換連結串列中的節點 、 19.刪除連結串列的倒數第N個節點 、面試題 02.07. 連結串列相交 、142.環形連結串列II面試題
- 【連結串列問題】刪除單連結串列的中間節點
- Redis筆記 — 連結串列和連結串列節點的API函式(三)Redis筆記API函式
- 如何判斷連結串列中是否有環並找出環的入口位置
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- 第四天:● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II面試題
- [演算法]向有序的環形單連結串列中插入新節點演算法
- 程式碼隨想錄演算法訓練營day04|24.兩兩交換連結串列中的節點,19.刪除連結串列的倒數第N個節點,面試題 02.07.連結串列相交,142.環形連結串列II演算法面試題
- 【連結串列問題】打卡3:刪除單連結串列的中間節點
- 每日演算法隨筆:環形連結串列演算法
- 資料結構連結串列筆試題資料結構筆試
- 程式碼隨想錄第4天 | 24. 兩兩交換連結串列中的節點、19.刪除連結串列的倒數第N個節點、面試題 02.07. 連結串列相交、142.環形連結串列II面試題
- 【連結串列問題】打卡2:刪除單連結串列的第 K個節點
- 特定深度節點連結串列
- Leetcode刷題之連結串列增加頭結點的字首節點LeetCode
- 04天【程式碼隨想錄演算法訓練營34期】 第二章 連結串列part02 (● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II )演算法面試題
- 【連結串列問題】打卡8:複製含有隨機指標節點的連結串列隨機指標
- 圖解帶頭節點的單連結串列的反轉操作圖解
- 《演算法筆記》6. 連結串列相關面試題總結演算法筆記面試題
- 連結串列專題——面試中常見的連結串列問題面試
- LeetCode題解(面試02.08):尋找連結串列與環的交點(Python)LeetCode面試Python
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 程式碼隨想錄演算法訓練營第四天 | 連結串列 24.兩兩交換連結串列中的節點 19.刪除連結串列的倒數第N個節點 142.環形連結串列II演算法
- BAT 經典演算法筆試題 —— 逆轉單向連結串列BAT演算法筆試
- 演算法題:反轉一個單連結串列&判斷連結串列是否有環演算法
- [連結串列]leetcode1019-連結串列中的下一個更大節點LeetCode
- java環形連結串列約瑟夫環問題筆記Java筆記
- 搜狗2012校園招聘自測題
- [演算法總結] 17 題搞定 BAT 面試——連結串列題演算法BAT面試
- 演算法題中的連結串列演算法
- 【LeetCode連結串列#9】圖解:兩兩交換連結串列節點LeetCode圖解
- K個節點翻轉連結串列
- 雙向連結串列 尾節點插入