件名の説明:
リストを考えると、チェーンリングの初めに最初のノードを返します。非環式チェイン場合は、NULLが返されます。(NA余分なスペース)
ソリューション:
フロイドのアルゴリズム
スピードの指輪のリストがあるかどうかを調べる1.。
実測2.遭遇ノードSTEP.1入口リングを識別する。
私は、問題の解決に地図上leetcodeを盗むでしょうSTEP.2証明
ACコード:
クラス解決{ パブリック: ListNode * fisrtM(ListNode * ヘッド) { ListNode * 遅いです。 ListNode * 速いです。 遅い =速い= ヘッド。 一方、(速い!= NULL) { 遅く =スロー> 次の; もし(faster->次== NULL)戻りNULL; 速い = faster->ネクスト> 次; もし(遅い==速い)を返す。遅いです } リターンヌル; } ListNode * detectCycle(ListNode * ヘッド){ 場合(ヘッド== NULL)戻りNULL。 ListNode * FM = fisrtM(ヘッド) もし(FM == NULL)戻りNULL; ListNode * ANS = ヘッド。 一方、(ANS =!FM) { ANS = ans-> 次。 FM = FM-> 次。 } 戻りANS。 } }。