Приведённый add просто перезаписывает текущие данные и не добавляет узел. Если пустой узел обозначен data == null, нужно заполнить его либо перейти к next, создав следующий узел при необходимости.
Внедрение функции вставки узла в односвязный список
Приведённый add просто перезаписывает текущие данные и не добавляет узел. Если пустой узел обозначен data == null, нужно заполнить его либо перейти к next, создав следующий узел при необходимости.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо реализовать метод add, который помещает переданное значение в структуру односвязного списка. Значение должно либо сохраняться в текущем узле, либо передаваться дальше по цепочке вызовов.
@Override
public boolean add(T element) {
this.data = element;
return data != null;
}
Ответ
Приведённый add просто перезаписывает текущие данные и не добавляет узел. Если пустой узел обозначен data == null, нужно заполнить его либо перейти к next, создав следующий узел при необходимости.
При запрете null-элементов пример логики внутри Node<T> с полями data и next:
public boolean add(T element) {
java.util.Objects.requireNonNull(element);
if (data == null) {
data = element;
return true;
}
if (next == null) next = new Node<>();
return next.add(element);
}
Это допущение о модели, поскольку полный класс не дан. Добавление занимает O(n) и O(n) стека; для длинного списка предпочтительнее итерация или отдельный tail. Если null разрешён как значение, нужен другой признак пустоты.