給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。
/*
public class listnode }*/
/*思路:
設定快慢指標,都從煉表頭出發,快指標每次走兩步,慢指標一次走一步,假如有環,一定相遇於環中某點(結論1)。
接著讓兩個指標分別從相遇點和煉表頭出發,兩者都改為每次走一步,最終相遇於環入口(結論2)。以下是兩個結論證明:
兩個結論:
1、設定快慢指標,假如有環,他們最後一定相遇。
2、兩個指標分別從煉表頭和相遇點繼續出發,每次走一步,最後一定相遇與環入口。
證明結論1:設定快慢指標fast和low,fast每次走兩步,low每次走一步。
假如有環,兩者一定會相遇(因為low一旦進環,可看作fast在後面追趕low的過程,每次兩者都接近一步,最後一定能追上)。
*/public
class
solution}if
(fast==null||fast.next==null)
return null;
low=phead;
while
(fast!=low)
return low;
}}
《劍指Offer》44 鍊錶中環的入口結點
題目 44.鍊錶中環的入口結點 知識點 鍊錶 題目描述 給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。解題思路 解題的思路比較簡單,使用兩個快慢兩個指標,快指標一次走兩步,慢指標一次走一步,根據數學知識可得,當鍊表中存在環的時候,在環中快指標一定可以再領先慢指標一圈後與慢...
《劍指 Offer》 44 翻轉單詞順序
字串 牛客最近來了乙個新員工 fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事 cat 對 fish 寫的內容頗感興趣,有一天他向 fish 借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am ...
劍指offer44 翻轉單詞順序
牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student....