55 鍊錶中環的入口結點

2021-09-25 06:16:38 字數 543 閱讀 2131

題目描述

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

/*

struct listnode

};*/

class solution

};

//兩個指標乙個fast、乙個slow同時從乙個鍊錶的頭部出發

//fast一次走2步,slow一次走一步,如果該鍊錶有環,兩個指標必然在環內相遇

//此時只需要把其中的乙個指標重新指向鍊錶頭部,另乙個不變(還在環內),

//這次兩個指標一次走一步,相遇的地方就是入口節點。

/*

struct listnode

};*/

class solution

else

return null;

}pfast = phead;

while(pfast != pslow)

return pfast;

}};

55 鍊錶中環的入口結點

乙個鍊錶中包含環,請找出該鍊錶的環的入口結點。思路一 使用乙個集合unordered set來儲存已經訪問過的結點,當第一次訪問到已經被訪問過的結點時,即為環的入口結點,此方法需要額外的空間進行輔助。一 struct listnode class solution else phead phead ...

55 鍊錶中環的入口結點

題目描述 給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。分析 1.得出鍊錶中環內節點數n 使用快慢指標,乙個每次走一步,乙個每次走兩步。兩指標相遇,表明鍊錶中存在環,且相遇的結點一定在環中。從相遇結點出發邊移動邊計數,直至再次回到此結點,得出環中結點數n。2.用兩個指標p...

55 鍊錶中環的入口結點 python

給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。思路如果slow走了l的長度那麼fast走了2l 假設從開始到入口點的長度是s,slow在環裡走的長度是d 那麼 l s d 假設環內slow沒走的長度是m,fast走的長度是n m d d s 2l 帶入得n m d d s...