タイトル説明
リング含む場合、エントリのリングノードリストを見つける前記リンクされたリストに、そうでなければ、NULLを出力します。
思考
長さL、2Lの遅い散歩はとても速くてしまった場合
エントリsの開始点からの長さが、長さdにリングを遅くすると仮定すると
次いでリットル= S + Dを
リングの長さが遅いMを行っていないと仮定し、速い歩行は、N×(M + D)+ D + S = 2Lの長さであります
得られたN、それはS = M満たさよう*(M + D)+ D + S = 2(S + D)=> S = M +(N-1)(M + D)M + dが環を中心とする円であります遅いと頭が一緒に行くので後、ミーティングポイントは、入力点であります
1 クラスソリューション: 2 DEF EntryNodeOfLoop(自己、PHEAD): 3 #ライトコードここで 4 なら PHEAD == なし: 5 リターンなし 6 fastPointer = PHEAD 7 slowPointer = PHEAD 8 ながら fastPointer とfastPointer.next: 9 slowPointer = slowPointer.next 10 fastPointer = fastPointer.next.next 11 の場合 fastPointer == slowPointer: 12 休憩 13 なら fastPointer ==なし又は fastPointer.next == なし: 14 リターンなし 15 fastPointer = PHEAD 16 ながら fastPointer =!slowPointer: 17 fastPointer = fastPointer.next 18 slowPointer = slowPointer.next 19 戻り fastPointer
2019年12月31日夜09時17分13秒