Мне нужно создать связанный список, используя метод remove (), который принимает параметр e, универсальный заменитель и удаляет связанный узел, содержащий e, а затем метод возвращает новый связанный список, содержащий все элементы, кромеe.
Я понятия не имею, как реализовать это, и самое длинное, что я получил, это:
public Set<E> remove(E e) {
LinkedNode<E> current = null;
if(!this.contains(e)) {//if this list doesnt contain e, return this
return this;
} else {//otherwise go through this set and if it contains e return new set w/out it
for(E j:this) {
if(j.equals(e)) {
current = new LinkedNode<E>(j,current);
}
}
}
Set<E> newSet = new LinkedSet<E>(current);
for(E i:newSet) {
System.out.print(i +", ");
}
return newSet;
}
этот код использует итератор, поэтому работает расширенный цикл for, но он возвращает наборыс неверной информацией.Я думаю, это может быть потому, что в конце нового набора, который я хочу, все еще есть ссылка на конец старого списка, но это всего лишь предположение.
Последний вывод, который я получил, был: d, b, a, c, e, b, d, a, c, e, b, d, a, и входные данные были: c, a, d, b, e
Я пытался удалить c