面試題23:鍊錶中環的入口結點
題目:乙個鍊錶中包含環,如何找出環的入口結點?例如,在下圖的鍊錶中,環的入口結點是結點3。
// 先移動 pnode1, 次數為環中節點的數目
pnode1=phead;
for(
int i=
0;i)// 再一起移動pnode1和pnode2
listnode* pnode2=phead;
while
(pnode1!=pnode2)
return pnode1;
}int
main()
劍指offer(面試題23) 鍊錶中環的入口結點
題目 如果乙個單向鍊錶包含環,如何找出環的入口結點。include using namespace std struct listnode 檢查是否存在環 listnode checkcicle listnode phead else return null listnode findcirclee...
劍指Offer面試題23 鍊錶中環的入口節點
給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。解題思路 解決這個問題可以分三步。1 第一步是確定乙個鍊錶中是否包含環。我們可以用兩個指標來解決這個問題。定義兩個指標,同時從鍊錶的頭結點出發,乙個指標一次走一步,另乙個指標一次走兩步。如果走得快的指標追上了走得慢的指標,那麼...
劍指offer 面試題 23 鍊錶中環的入口結點
給定乙個鍊錶,若其中包含環,則輸出環的入口節點。若其中不包含環,則輸出null。給定如上所示的鍊錶 1,2,3,4,5,6 2注意,這裡的2表示編號是2的節點,節點編號從0開始。所以編號是2的節點就是val等於3的節點。則輸出環的入口節點3.definition for singly linked ...