劍指offer 55 鍊錶中環的入口結點

2021-09-26 20:12:22 字數 381 閱讀 6101

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

思路:用兩個指標代表一快一慢的指標,快指標一次前進2個單位,慢指標一次前進1個單位。兩個指標同時出發。

慢指標前進了x個單位,快指標前進了2x個單位。

則有 2x=n+x 推導出 n = x。則慢指標走了乙個環的步數,快指標走了兩個環的步數。

此時讓快指標指向頭指標,兩個指標都按一次1個單位前進,直到下一次相遇時,此時兩個指標指向環的起點。

class

solution

if (p1 ==p2)

return

p1; }

}return

null;

}};

劍指offer 55 鍊錶中環的入口結點

給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。找環的入口這個問題,其實是建立在另外乙個問題之上的 判斷單向鍊錶是否有環 土方法很多,但是比較好的目前就那麼乙個 一開始設定兩個指標都指向表頭,其中乙個每次 一步 前進乙個節點的叫p1,另外那個每次 一步 前進兩個節點的叫p2...

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

給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。設定塊 慢指標,快指標沒次走兩步,慢指標每次走一步,如果有環,它們一定會相遇 否則快指標會先到最後。相遇後選乙個指標在頭結點,然後與慢指標同時移動,相遇位置就為環入口 走一步和兩步 while slow fast if fas...

劍指offer 55 鍊錶中環的入口結點

給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。時間限制 1秒 空間限制 32768k 熱度指數 144136 本題知識點 鍊錶 見 struct listnode class solution while slow fast 2.計算環內長度 int l 0 dowhil...