0

リンクリストにノードを追加するときのアイデアは次のようになると思います。

Declare newNode 
Add to the front if front == null
else if there is already a node in the list

しかし、これはうまくいかないようです

public boolean add (E e) {

  ListNode<E> newNode = new ListNode<E>(e,null);

  if (front == null){
      front = newNode;
      rear = newNode;
      objectCount++;
      return true;
  }

      front.next = newNode;
      rear.next = newNode;
      rear = newNode;
      objectCount++;
      return true;
}

しかし、これをリスト "a"、 "b"、 "c"、 "d"、 "e"に対して実行すると、リストサイズは5ではなく、サイズ2が返されます。ここで何が問題になっていますか?

4

2 に答える 2

2

フロントノードとリアノードの隣に新しいノードを追加します。この問題を解決するには、それをリアノードに追加する必要があります(リストがリアの新しい値のみを受け入れると仮定します)。

//front.next = newNode;
rear.next = newNode;
rear = newNode;
objectCount++;
return true;
于 2012-10-17T05:49:26.243 に答える
0

フロントノード内の次のポインタを変更しないでください。フロントノードが存在する場合は、次の手順に従います。

  1. 新しいノードを作成します
  2. リアの次のノードを新しいノードに設定します。
  3. リアノードを新しいノードに設定します。
  4. カウンターをインクリメントします。
于 2012-10-17T05:54:32.930 に答える