Я пытаюсь удалить многократные узлы, которые соответствуют критериям из связанного списка. Программа немного сложна, поэтому я получу ее суть. Узлы в моем связанном списке имеют следующие характеристики (имя, связанное с номером):Удаление нескольких узлов из связанного списка java
Name Number
Dog 1
Cat 1
Rat 2
Donkey 3
Fish 1
Я хочу, чтобы иметь возможность удалить узлы с номером 1. Моей функции удаления:
public void Delete(Int N) {
Node current = Head;
Node previous = Head;
while (current.getNum() != N) {
if (current.getNextNode() == null) {
System.out.print("Not found");
} else {
previous = current;
current = current.getNextNode();
}
}
if (current == Head) {
Head = Head.getNextNode();
} else {
Node A = current.getNextNode();
previous.setNextNode(A);
}
}
Это работает, но только удаляет первое вхождение. Я знаю, это может быть из-за отсутствия или соответствующей структуры петли, но я работал над этим в течение нескольких часов, и я смущаюсь по пути. Я попытался сделать таблицу трассировки вручную, но это тоже не работает.
Как отредактировать функцию, чтобы она проходила по всем связанным спискам и удаляла узлы, соответствующие критериям?