Java 自定义LinkedList中的addFirst()
我正在使用CustomLinkedList的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
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;