leetcode 142環状リストII(C ++)

リストを考えると、チェーンリングの初めに最初のノードを返します。鎖非環式ならば、nullが返されます。

リングを与えられたリストを表示するために、我々はリストの位置を表すリストの最後(インデックスは0から始まる)に接続されたPOS整数。posが-1の場合、リングがこのリストに含まれていません。

説明:指定されたリストを変更しないようにしてください。

 

例1:

入力:ヘッド= [3,2,0、-4] 、POS = 1つの
出力:尾インデックス1ノードに接続の
説明:リストは、第2のノードに接続されたリングテール部分を有しています。


例2:

入力:ヘッド= [1,2]、POS = 0
出力:尾はノードインデックス0に接続
説明:リストは、最初のノードの尾部に接続されたリングを有しています。


例3:

入力:ヘッド= [1]、POS = -1
出力:NOサイクルは
説明しない:リストがリングありません。

/ * * 
 *単独リンクリストのための定義。
 *構造体ListNode { 
 * INTヴァル。
 * ListNode *次の; 
 * ListNode(INT X):ヴァル(x)は、次の(NULL){} 
 *}。
 * / 
クラスソリューション{
 パブリック
    ListNode * detectCycle(ListNode * ヘッド){ 
                ListNode *遅い=頭部、*高速= ヘッド。
        一方、(高速&&急速> 次){ 
            遅く =遅い> 次。
            速い =急速>ネクスト> 次;
            もし(遅い==速い)ブレイク
        }
        もし(!速い||急速>次の)リターンNULL; 
        遅い = ヘッド。
        一方、(!=遅く{速い)
            遅く =遅い> 次。
            速い =急速> 次。
        } 
        を返す速いです。
    } 
}。

 

おすすめ

転載: www.cnblogs.com/xiaotongtt/p/11318191.html