劍指offer 鍊錶中的環入口

2021-10-07 13:26:30 字數 486 閱讀 1101

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

/*

struct listnode

};*/

// 首先判斷是否包含環,如果包含環,則統計環中節點的個數

// 1.使用兩個指標,乙個走兩步,乙個走一步,則一定能在環中相遇

// 2.相遇後乙個節點不動,另乙個節點每次走一步統計環中節點的個數

// 根據統計的個數n,使用兩個指標,其中乙個指標先走n步,兩個指標相遇處就是環的入口處

class solution else

}if(has)

} else return null;

p1 = phead;

p2 = phead;

while(num > 0)

while(p2!=p1)

return p1; // 返回環入口

}};

劍指offer 鍊錶環入口結點

struct listnode class solution if flag 1 說明有環 return meet else 給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。因為之前接觸過帶環的鍊錶所以寫這道題的時候直接想到了快慢指標,程式放到牛客網上也是直接通過了,但是在...

劍指offer 鍊錶 尋找乙個鍊錶中的環入口

題目乙個鍊錶中包含環,請找出該鍊錶的環的入口結點 個人思路分析 一定要保證思維有序,分析問題後即使最後沒有得到最完美的答案,至少方向正確不能跑偏。public class listnode 根據題目中對鍊錶的定義 環必不可能出現在鍊錶中部 offer巧妙解法 mycodepublic class s...

劍指offer 鍊錶中環的入口

問題描述 給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。假設x為環前面的路程 紅色路程 a為環入口到相遇點的路程 綠色路程,假設順時針走 c為環的長度 藍色路程 設定快慢指標fast和slow,快指標的速度是慢指標的兩倍 當快慢指標相遇的時候 此時慢指標走的路程為sslo...