Как вставить первый элемент в двусвязный список в 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);