Без "предыдущего", как цепочка минусов связного списка останется подключенной?
Представьте себе: Prev->Current->Next
, который необходимо превратить в Prev->Next
, если элемент Current
должен быть удалениз списка.Если Prev
не был сохранен временно, его нельзя было изменить, чтобы обновить ссылку.(Если бы список представлял собой двусвязный список, то Prev
не понадобился бы, поскольку его можно восстановить из Current->previous
).
Счастливое кодирование.
В ответна вопрос в комментарии:
Если ничего не сделать, то дублирующийся элемент не отключается от списка.n = n.next
изменяет значение n
(но не изменяет данные элемента / узла, хранящиеся в n
или в другом месте, поэтому Prev.next
никогда не изменяется с Current
).
Что необходимо , чтобы выполнить next
из Prev
, элемент / узел перед удаленным элементом должен быть обновлен для ссылки на элемент (Next
) послеудаленный элемент.
previous.next = n.next; // and this does it
(Это также может быть написано в функциональном немутативном стиле, в котором исходный список не изменяется и создается новый список - в этом случае не будет необходимости Prev
).