Я работаю над списком ссылок и в настоящее время не могу удалить специализированный узел по ключевому значению. Я спрашиваю помощника в своей школе, и он не уверен, почему он не работает. (Существует также много попыток уловов для другого вопроса. Извиняюсь за то, насколько он важен)Проблема с удалением узла
Вот мой метод удаления:
public void remove(int key) throws Exception {
Node tmp = first;
Node pred = first;
while (tmp != null) {
if (tmp.keyValue == key) {
pred = tmp;
tmp = tmp.next;
} else {
tmp = tmp.next;
}
}
Вот мой основной метод creaing списка и пытается удалить его и распечатать его:
OrderedLinkedList oLL3 = new OrderedLinkedList();
try {
oLL3.insert("Should be removed", 5);
oLL3.insert("Shouldn't be removed 2nd", 15);
oLL3.insert("Shouldn't be removed", 10);
} catch (Exception e) {
System.out.println("Error: Two nodes with the same key value and the newest one won't be stored.");
}
try {
oLL3.remove(5);
} catch (Exception r) {
System.out.println("Error:No nod with the key value to be removed");
}
System.out.print("toString test removing node: \n" + oLL3.toString());
System.out.println("Number of nodes in the List:" + oLL3.listCount());
}
Мои переменные tmp и pred Node назначаются первым в методе удаления. Или вы имеете в виду что-то еще? –
Это локальные переменные. Присвоение им не влияет ни на что вне метода, к которому они принадлежат. – khelwood
Значит, вы говорите, вместо того, чтобы сначала назначать что-то локальное в методе, я должен сначала назначить что-то, что не является локальной переменной? (Я также просто не могу создавать какие-либо переменные-члены, кроме первых.) –