循環リスト

リストを指定すると、リストがリングかどうかが決定されます。

リングを与えられたリストを表示するために、我々はリストの位置を表すリストの最後(インデックスは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に; 
  }
コードの表示

 

おすすめ

転載: www.cnblogs.com/wuyouwei/p/11795856.html