Преобразовать односвязный список в двусвязный список
Вот код, который у меня сейчас есть. Содержит только метод addFirst.
public void addFirst(E e) {
Node<E> newNode = new Node<E>(e);
if (tail == null)
head = tail = newNode;
else {
newNode.next = head;
head = newNode;
}
size++;
}
private static class Node<E> {
E element;
Node<E> next;
public Node(E e) {
element = e;
}
}
Попытка настроить "предыдущее" поле
public void addFirst(E e) {
Node<E> newNode = new Node<E>(e);
if (tail == null)
head = tail = newNode;
else {
newNode.next = head;
firstElement.previous = newNode; //*
head = newNode;
newNode.previous = null;
}
size++;
}
private static class Node<E> {
E element;
Node<E> next, previous; //adding previous field
public Node(E e) {
element = e;
}
}
* Я хочу, чтобы firstElement.previous указывал на newNode. Как я могу это сделать?
1 ответ
Решение
Менять:
firstElement.previous = newNode
в
head.previous = newNode;