Похоже, ваш список является двусвязным списком, и у вас есть ссылка на последний элемент (tail
в вашем коде), что означает, что вы можете удалить последний элемент за O(1)
время.
Ваша попытка почти верна. В дополнение к изменению ссылки tail
для ссылки на tail.prev
необходимо установить ссылку next
нового хвоста на null
.
Другие узлы списка не должны быть затронуты.
private void popBack(){
if(!isEmpty()) {
--size;
T temp = tail.info;
tail = tail.prev;
tail.next = null;
System.out.println(temp);
}
}
Возможно, вам придется добавить еще одну проверку для случая, когда удаленный элемент был единственным элементом (в этом случае tail.prev
, вероятно, равен нулю), и после удаления список пуст.