劍指offer 23:鏈表中環的入口節點

題意

如果一個鏈表中包含環,如何找出環的入口節點。

思路

感覺思路比較巧妙,就只說思路。

  1. 要找到環,就用兩個指針,一個一次走一個節點,一個一次走兩個節點,如果快的節點能和慢的節點相遇,說明有環,如果快的節點在到達結尾都沒有追到慢節點,說明沒有環。
  2. 找到環怎麼找入口呢。只要知道環的元素個數n,讓一個指針先走n個節點,然後讓另一個節點從起點開始走。二者相遇的節點就是入口節點。
  3. 怎麼知道元素個數n呢。在1的時候兩個節點如果相遇,就肯定是在環中相遇。那麼記錄這個節點,下次指針再經過這個節點的時候就能獲得元素個數。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章