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 回答