判斷單鏈表是否存在回環

2021-07-22 11:59:44 字數 470 閱讀 6505

/*

author: victor lv

date: 2016-9-6 10:14

description: 判斷單鏈表是否有回環c++

*//**

* c++:判斷單鏈表是否存在回環

* 輸入:list的頭指標

* 返回:bool:true表示有回環,false表示無

*/ /**解題思想:

*這裡也是用到兩個指標。如果乙個鍊錶中有環,

*也就是說用乙個指標去遍歷,是永遠走不到頭的。

*因此,我們可以用兩個指標去遍歷,

*乙個指標一次走兩步,乙個指標一次走一步,

*如果有環,兩個指標肯定會在環中相遇。

*時間複雜度為o(n)。

*/ bool hasloop(listnode *phead)

return false;

}

判斷單鏈表中是否存在回環

判斷單鏈表是否存在回環原理很簡單,即假設有兩個指標p1,p2。在每次迴圈的時候,p1先走一步,p2走兩步,直到p2碰到空指標或兩者相等時迴圈結束,如果兩個指標相等則說明存在回環。include using namespace std include struct node node create n...

判斷單鏈表是否存在環

有乙個單鏈表,其中可能有乙個環,也就是某個節點的next指向的是鍊錶中在它之前的節點,這樣在鍊錶的尾部形成一環。問題 1 如何判斷乙個鍊錶是不是這類鍊錶?2 如果鍊錶為存在環,如果找到環的入口點?解答 一 判斷鍊錶是否存在環,辦法為 設定兩個指標 fast,slow 初始值都指向頭,slow每次前進...

判斷單鏈表是否存在環

判斷單鏈表是否存在環,判斷兩個鍊錶是否相交問題詳解 有乙個單鏈表,其中可能有乙個環,也就是某個節點的next指向的是鍊錶中在它之前的節點,這樣在鍊錶的尾部形成一環。問題 1 如何判斷乙個鍊錶是不是這類鍊錶?2 如果鍊錶為存在環,如何找到環的入口點?解答 一 判斷鍊錶是否存在環,辦法為 設定兩個指標 ...