У меня есть отсортированный двусвязный список, в котором первый и последний элементы равны нулю. Это означает, что когда я вставляю значения a, b, c. Результат должен выглядеть следующим образом: {null, a, b, c, null}
Пустой отсортированный двусвязный список должен выглядеть следующим образом: {null, null}, в котором первый и последний элементы всегда равны нулю.
Проблема в том, что когда я вставляю данные в отсортированный двусвязный список, данные сортируются некорректно, а 2 пустых значения всегда находятся в конце списка. Как я могу это исправить?
Вот мой текущий метод вставки:
public void addElement(String element) {
// new node which will be inserted in the list
Node newNode = new Node();
newNode.data = element;
// if the list is empty
if (size == 0) {
last = newNode;
newNode.next = first;
first = newNode;
size++;
} else {
Node current = first;
// if the element should be at the beginning of the list
if (current.data.compareTo(element) > 0) {
newNode.next = current;
newNode.previous = null;
current.previous = newNode;
first = newNode;
} else {
while (current != null) {
if (current.data.compareTo(element) <= 0) {
if (current.next == null) {
newNode.next = current.next;
newNode.previous = current;
current.next = newNode;
break;
}
newNode.next = current.next;
newNode.previous = current;
current.next.previous = newNode;
current.next = newNode;
break;
} else {
current = current.next;
}
}
}
size++;
}
}