劍指offer23 鍊錶中環的入口節點

2021-08-22 19:19:27 字數 427 閱讀 5606

給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。

兩個指標,p1,p2

p1一次走一步,p2一次走兩步。

第一次相遇之後開始計數,第二次再相遇時count的值就是環有多少個節點。

兩個指標,p1,p2

p1先走count步,然後兩個再同時走,相遇的點就是入口節點。

/*

struct listnode

};*/

class solution

return 0;

}listnode* entrynodeofloop(listnode* phead)

return p2;

}};

經過兩次現場寫**,發現必須要盡量用腦子來debug。

否則手寫**永遠不能過關。加油

劍指offer23 鍊錶中環的入口節點

判斷單鏈表中有沒有環,如果有找到環的入口節點。三個問題 1 如何確定鍊錶中包含環 兩個指標,乙個指標一次走一步,乙個指標一次走兩步。如果走得快的指標追上了走得慢的指標,則說明鍊錶包含環 如果走得快的指標走到了鍊錶末尾 p next null 都沒有追上第乙個指標,則無環。2 如何找到環的入口 定義兩...

劍指offer 23 鍊錶中環的入口節點

給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出none。思路 1.找相遇點 設定乙個快指標pfast乙個慢指標pslow,先找到乙個相遇點,一定在環中 2.計算環的長度 從相遇點出發,到相遇點結束 1,即為環的長度。3.pfast 從phead 環的長度出發 pslow從phead...

劍指offer23 鍊錶中環的入口節點

題目 如果乙個鍊錶中包含環,如何找出環的入口節點?例如,在下圖所示的鍊錶中,環的入口節點是節點3。1 判斷乙個鍊錶是否包含環?可以用兩個指標來解決這個問題,定義乙個慢指標和乙個快指標,這兩個指標同時從鍊錶的頭節點出發,慢指標一次走一步,快指標一次走兩步,如果快指標追上了慢指標,說明鍊錶就包含環,如果...