鍊錶中環的入口結點

2021-07-15 09:29:34 字數 366 閱讀 2833

乙個鍊錶中包含環,請找出該鍊錶的環的入口結點。

class listnode 

}public class solution

return p1;}}

return null;

}}

分析:假設鍊錶的起始點到環的入口點節點數為k,,環的的節點數為x,讓p2的速度是p1的兩倍,p1和p2相遇在環的第y各節點,可以得到如下等式。p1走的距離乘以2等於p2走的距離:2*(k+y)=k+n*x+y。(如果k比環大很多,p2可能繞了n圈)。從上式可以得出k+y=n*x也就是k=(n-1)*x+(x-y);如**:當p1和p2以相同的速度走,p1從起點,p2從相遇點,當他們再相遇時,那個點就是環的入口點。

鍊錶中環的入口結點

題目要求 乙個鍊錶中包含環,請找出該鍊錶的環的入口結點 分析 1 一種比較偷懶的方法就是遍歷鍊錶,並直接利用hashmap來儲存已經遍歷過的結點。一旦發現已經儲存過的結點,那麼該結點就是環的入口結點。2 參考自 我簡單畫了乙個圖 上傳之後一直是橫過來的。不知道為什麼轉不正 設定兩個指標p1和p2,乙...

鍊錶中環的入口結點

題目描述 乙個鍊錶中包含環,請找出該鍊錶的環的入口結點。思路1 設環中結點數是n,環的入口位置是x 距離起點走多少步 用快慢指標p,q,q移動的速度是p的2倍,當兩個指標相遇時p走的步數是y,q走的步數是2y,q比p多走k個環的距離,即 2y y kn,則y kn。p距離環的入口點的距離為y x,此...

鍊錶中環的入口結點

題目 乙個鍊錶中包含環,請找出該鍊錶的環的入口結點。解法一 定義指標p1和p2指向鍊錶的頭結點。假設鍊錶中的環有n個結點,指標p1先在鍊錶走n步,然後兩個指標以相同的速度前進。因為p1總是比p2多走n個結點,在進入環之後,當兩個指標相遇時,相遇點則為環的入口結點。如下 class solution ...