InsertFront()メソッドでオブジェクトを追加しようとすると、NullPointerExceptionが発生します。 DLISTコードは次のとおりです。ただし、このエラーは、もはや、すぐに私はこれに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++;
}
:今
public DList() {
head=newNode(null,head,head);
head.prev=head;
head.next=head;
size=0;
}
、私はhead.nextを割り当てることを理解していないん& head.prevの値は問題を解決しました。
head=newNode(null,head,head);
説明してください:しかし、私はすでに、コンストラクタの第一行の前と次のノードとして「頭」変数に割り当てたときに別々にこのことを知らせるために必要だったか理解していません。
head=newNode(null,head,head);
注head
が最初null
あるため、コールが本当にこのようなものであること:
head=newNode(null,null /*prev*/, null /*next*/);
初期コンストラクタでは、これはあなたがそれが何を考えて