リストを指定すると、リストがリングかどうかが決定されます。
リングを与えられたリストを表示するために、我々はリストの位置を表すリストの最後(インデックスは0から始まる)に接続されたPOS整数。posが-1の場合、リングがこのリストに含まれていません。
例1:
入力:ヘッド= [3,2,0、-4] 、POS = 1つの
出力:真
説明:リストは、第2のノードに接続されたリングテール部分を有しています。
解決策1:
パブリック 静的 ブールhasCycle(ListNodeヘッド){ / * ヘッドポインタがヌル次の判定に進むされていない場合* / IF(ヘッド!= NULL ){ / * 高速ポインタを定義し、各歩行ステップ2 * / ListNode FAST = ヘッド; / * 毎回一歩進み、遅いポインタを定義する* / ListNode遅い = ヘッドと、 一方(!= FAST ヌル!&& fast.next = NULL ){ 遅い = slow.next; FAST = fast.next.next; / *ポインタの出会いの速度がリングを説明すると、最後の出会いは距離を実行している遅い人々を実行しているとき、ラップで走行速度のトラックに2つの異なる人々が、速く走るので、なぜループ速度ポインタは、それを満たしていますループn回* / IF(== SLOW FAST){ リターン trueに; } } } 戻り falseに; }