Как вставить первый элемент в двусвязный список в Java

Я просматривал различные посты, но не могу понять, как это сделать - как вставить элемент в пустой двусвязный список? (Я не могу визуализировать пустую DLL.) Я хочу прочитать вещи из файла и вставить их в DLL, и у меня также есть метод для добавления объектов, чтобы помочь с этим.

public void add(ListNode prev, Object object, ListNode next){
    ListNode newNode = new ListNode(prev, object, next);
    prev.setNext(newNode);  
    newNode.setPrevious(prev);
    newNode.setNext(next);
    next.setPrevious(newNode);
}

В моем методе, где я читаю объекты и вставляю их,

int currNum = scanner.nextInt();
DoublyLL dll = new DoublyLL();
ListNode curr = dll.getFirst(); //start at beginning of list
ListNode prev = null;

if(curr == null){   //if the list is empty
    ListNode first = new ListNode(curr, currNum, null);
    dll.getFirst().setValue(first); //returns a null-pointer exception
}

Последняя строка делает исключение нулевого указателя. Итак, как вы вставляете первый элемент? Вы используете add()? Спасибо за помощь.

2 ответа

Сначала нужно сделать что-то вроде dll.setFirst(<some non-null object>) а затем сделать эту последнюю строку. Это очевидно null там (потому что вы только что проверили на это состояние в if заявление). Вам не нужно устанавливать какое-либо значение в firstнужно сначала создать экземпляр first Вот.

Вы просто указываете на него заголовок header=new Node(null,currNum,null);

Другие вопросы по тегам