【演算法】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;
}
}
相關文章
- 連結串列面試題(十一)---求帶環單連結串列 環的入口點面試題
- 連結串列面試題(十三)---求兩個都不帶環的連結串列相交的結點面試題
- 百度2013校園招聘筆試題[軟體研發]及答案筆試
- 遞迴演算法-不帶頭節點的單連結串列遞迴演算法
- 連結串列面試題(十)---求帶環單連結串列的環的長度面試題
- 帶頭結點的連結串列操作題
- 《劍指offer》:[37]如何得到連結串列環的入口地址
- 演算法搜狗筆試題連結串列合併演算法筆試
- 連結串列面試題(四)---查詢連結串列的中間節點面試題
- Redis筆記 — 連結串列和連結串列節點的API函式(三)Redis筆記API函式
- 連結串列面試題(九)---判斷一個連結串列是否帶環面試題
- [演算法]向有序的環形單連結串列中插入新節點演算法
- [2014校招筆試]判斷單連結串列是否有環?筆試
- 牛客網高頻演算法題系列-BM7-連結串列中環的入口結點演算法
- 資料結構連結串列筆試題資料結構筆試
- 連結串列面試題(十二)---判斷兩個都不帶環的連結串列是否相交面試題
- 每日演算法隨筆:環形連結串列演算法
- **24. 兩兩交換連結串列中的節點****19.刪除連結串列的倒數第N個節點****面試題 02.07. 連結串列相交****142.環形連結串列II**面試題
- Day4(連結串列)|24. 兩兩交換連結串列中的節點 & 19.刪除連結串列的倒數第N個節點 & 面試題 02.07. 連結串列相交 &142.環形連結串列II面試題
- 【校園招聘】一道筆試題看c++中virtual覆蓋筆試C++
- Day 4 | 24. 兩兩交換連結串列中的節點 、 19.刪除連結串列的倒數第N個節點 、面試題 02.07. 連結串列相交 、142.環形連結串列II面試題
- 圖解帶頭節點的單連結串列的反轉操作圖解
- 【連結串列問題】打卡8:複製含有隨機指標節點的連結串列隨機指標
- 校園招聘的思考
- 各大IT公司2012校園招聘筆試面試整理筆試面試
- 第四天:● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II面試題
- 百度2011.10.16校園招聘會筆試題筆試
- java環形連結串列約瑟夫環問題筆記Java筆記
- BAT 經典演算法筆試題 —— 逆轉單向連結串列BAT演算法筆試
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- 程式碼隨想錄演算法訓練營第四天 | 連結串列 24.兩兩交換連結串列中的節點 19.刪除連結串列的倒數第N個節點 142.環形連結串列II演算法
- 演算法題:反轉一個單連結串列&判斷連結串列是否有環演算法
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 程式碼隨想錄演算法訓練營day04|24.兩兩交換連結串列中的節點,19.刪除連結串列的倒數第N個節點,面試題 02.07.連結串列相交,142.環形連結串列II演算法面試題
- Leetcode刷題之連結串列增加頭結點的字首節點LeetCode
- 筆記--連結串列演算法筆記演算法
- 04天【程式碼隨想錄演算法訓練營34期】 第二章 連結串列part02 (● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II )演算法面試題
- K個節點翻轉連結串列