Алгоритмическое мышление при решении задач (на примере языка C#). Шамшев А.Б - 89 стр.

UptoLike

Составители: 

89
Следующим шагом будет отказ от использования delNode и добавление
проверки на пустоту списка (на всякий случай) в начале функции.
public void delNotFromHead(int delValue) {
if (head == null) {
return;
}
ListNode prevNode = head;
while (prevNode.next != null) {
if (prevNode.next.data != delValue) {
prevNode = prevNode.next;
continue;
}
prevNode.next = prevNode.next.next;
return;
}
}
Удаление и из головы, и не из головы мы реализовали.
Теперь для примера реализуем операцию удаления по значению. Операция
удаления по значению может включать в себя удаление из головы и не из
головы, при этом каждая из них может выполняться 0 или более раз.
Для примера, пусть в списке три двойки и
мы удаляем двойку. Очевидно,
что в начале список был
После этого он пройдет следующие шаги:
И после этого он станет пустым списком.
Т. е. мы делали операцию удаления из головы, пока голова существовала и
в ней находилось удаляемое данное. Поэтому первые шаги материализации
рассуждений в виде кода будут следующими:
public void delByValue(int delValue) {
while (head != null) {