Я не уверен, что это правильный способ создания метода удаления для моего кругового списка, также у меня возникла проблема с его работой для 1 списка узлов.Циркулярный список Удаление узла
public void remove() {
if(first.getNext() == null) {
first = null;
first.setNext(null);
} else {
Node current = first;
for(int i = 0; i < getSize() - 1; i++) {
current = current.getNext();
}
first = first.getNext();
current.setNext(first);
size--;
}
}
У меня он работает должным образом для списков, которые больше, чем два, но я не уверен, что это был лучший способ для решения этой проблемы. Есть ли у кого-нибудь предложения по улучшению этого способа, а также к тому, чтобы один список узлов был удален правильно? Несмотря на то, что я установил первый узел в значение null, а следующий узел - нулевым, он все равно возвращает мой исходный вход.
EDIT: Для тех, кто смотрит на это в будущем, я просто распечатал сообщение о том, что вы не можете удалить элемент. Поскольку мое задание было довольно неоднозначным, что с ним делать.
вы можете добавить больше деталей или код ! Что такое getSize? если его общий список элементов, вы можете напрямую проверить getsize() == 1. как вы извлекаете данные? – Dineshkumar
getSize() возвращает размер кругового списка, getData() возвращает целое число, которое хранится в узле, getNext() возвращает узел, который указывает текущий. – user123