Java 自定义LinkedList中的addFirst()

Java 自定义LinkedList中的addFirst(),java,linked-list,singly-linked-list,Java,Linked List,Singly Linked List,我正在使用CustomLinkedList的LinkedList,在实现AddFirst方法时遇到了一些问题 方法是这样的 public void addFirst(GenericType data) { Node<GenericType> toAdd = new Node<GenericType>(data); if(sizeCounter != 0) { toAdd.next = head; head = toAdd; sizeC

我正在使用CustomLinkedList的LinkedList,在实现AddFirst方法时遇到了一些问题

方法是这样的

public void addFirst(GenericType data)
{
  Node<GenericType> toAdd = new Node<GenericType>(data);

  if(sizeCounter != 0)
  {
    toAdd.next = head;
    head = toAdd;
    sizeCounter++; 
  } else {
    head = toAdd;
    tail = toAdd;
    toAdd.next = null;
    sizeCounter++;
  }
}
它出现在以下位置:

public GenericType get(int index){ return getNodeAt(index).value; }
getNodeAt()函数:

private Node<GenericType> getNodeAt( int index ){
  Node<GenericType> p = null;
  p = head.next;
  for( int i = 0; i < index; i++ ){
    p = p.next; 
  }
  return p;
}
private节点getNodeAt(int索引){
节点p=null;
p=头。下一个;
对于(int i=0;i
更改此选项:

head = add;
tail = add;
为此:

head = toAdd;
tail = toAdd;
在else街区

编辑

发布堆栈跟踪后,问题是您正在从getNodeAt方法返回null

假设列表中只有一个元素;然后
p=head.next
将为null,您将返回该值


尝试设置
p=head
而不是变量
add
是什么?您可以在出现错误的地方添加代码吗?张贴堆栈跟踪和异常发生的行号查看
if
语句的
else
部分:此时
add
变量包含什么?这就是导致您的
NPE
@GermannArlington的原因。我纠正了错误,错误仍然存在。是的,那是我的错误,我忘记更改了。但错误仍然存在。一直抛出空指针[忘记标记]@richardtz非常感谢,这是导致问题的原因。
head = add;
tail = add;
head = toAdd;
tail = toAdd;