我有一个List类,我有这个插入函数。该列表正逐渐对列表中的数字进行排序。当我插入以下语句Ape ={ 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 6 }
时,我得到一个nullpointer异常。
public List<E> insert (E d){
Node<E> newNode= new Node<E>(d);
if(isEmpty()){
current=first=last=newNode;
numberOfNodes++;
return this;
}
if(newNode.data.compareTo(first.data)>0){
first.prior=newNode;
newNode.next=first;
first= current = newNode;
numberOfNodes++;
return this;
}
setFirst();
while(current.next != null && newNode.data.compareTo(current.data)<0){
current=current.next;
}
if(current.next==null){
current.next=newNode;
newNode.prior=current;
last=current=newNode;
numberOfNodes++;
return this;
}
else{
current.prior.next=newNode;
newNode.prior=current.prior;
newNode.next=current;
current.prior=newNode;
current=newNode;
numberOfNodes++;
return this;
}
}
我在current.prior.next = newNode;
获得了一个nullpointer异常有人可以帮我这个吗?
非常感谢!
答案 0 :(得分:0)
null的元素实际上必须是current.prior如果current为null,那么前面的if会有一个nullpointer。 这意味着您正在查看的节点没有先前的节点。 当您单步执行代码时,这将变得明显。
此外:
current=first=last=newNode;