1
當我嘗試使用InsertFront()方法添加對象時,出現NullPointerException。該DLIST代碼:NullPointerException在雙鏈表實現中
public class DList {
protected DListNode head;
protected int size;
protected DListNode newNode(Object item, DListNode prev, DListNode next) {
return new DListNode(item, prev, next);
}
public DList() {
head=newNode(null,head,head);
size=0;
}
public void insertFront(Object item) {
head.next.prev=newNode(item, head, head.next);
head.next=head.next.prev;
size++;
}
然而,這種錯誤不再當我改變DLIST構造函數,這表明了:
public DList() {
head=newNode(null,head,head);
head.prev=head;
head.next=head;
size=0;
}
現在,我也明白,分配head.next & head.prev值解決了問題;但我不明白什麼是需要seperately,說明這個時候我已經分配的「頭」變量在構造函數中的第一行的prev和next節點:
head=newNode(null,head,head);
請解釋。