リストを考えると、チェーンリングの初めに最初のノードを返します。鎖非環式ならば、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; 遅い = ヘッド。 一方、(!=遅く{速い) 遅く =遅い> 次。 速い =急速> 次。 } を返す速いです。 } }。