劍指Offer44 鍊錶中環的入口結點

2021-10-06 17:57:37 字數 656 閱讀 2847

給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出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....