Я получаю исключение NullPointerException при попытке добавить объект с помощью метода InsertFront(). Код DList есть:NullPointerException в реализации Doubly Linked List
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 решили проблему; Но я не понимаю, что была необходимость в том, это отдельно, когда я уже назначен переменной «голова», как пред и последующие узлы в 1-й строке конструктора:
head=newNode(null,head,head);
Пожалуйста, объясните.