1

私はJavaを学んでいる学生です。明日は大きなテストがあり、特定のコード行に混乱しています。

メソッドinsertAfterは、メソッドに渡されたlinkedList内の番号を検索し、一致後に新しいノードを挿入します。方法がわかりません

 curr.setNext(curr.getNext()) 

リスト内の次のノードに移動します。これは、探している番号である可能性があります。では、このコマンドはリンクリストをどのように反復するのでしょうか。

curr = curr.getNext()に行く方が理にかなっていますか?

これが非常に単純であるならば、ありがとうそして申し訳ありません...私は現在非常に混乱しています

// assume firstInList is in the list
public void insertAfter(int firstInList, Node toAdd){
    Node curr = head;

    while( curr.getData() != firstInList ){
        curr.setNext(curr.getNext());
    }

    curr.setNext(toAdd);        
}


   Node class
  {
   int getData() {return data};
   void setData(int data) {this.data =data};
   Node getNext() {return next};
   void setNext(Node next) {this.next = next};
  }

}

追加 のメソッドメソッドは呼び出されます

   public void insertBefoe (Node, inList, Node toAdd)
4

2 に答える 2

1

コードが次のように表示されることは明らかです。

curr = curr.getNext()

それ以外の

curr.setNext(curr.getNext());

さらに、以下が壊れています。

curr.setNext(toAdd);        

これが実行されると、それに続くリストの部分firstInListが失われます。

于 2013-03-01T09:07:03.843 に答える
0

コードが正しくないようです。

頭はどこから?setNext(..)何らかの形でコードも変更しない限り、while ループから抜け出せないように見えます。getData()

残念ながら、全体像を把握していないため、支援するのは困難です

于 2013-03-01T09:04:07.477 に答える