Это вопрос, заданный мне в интервью.
"В памяти есть один связанный список. Вам нужно удалить node. Вам нужно написать функцию для удаления node, которая удаляет только адрес node вход и ничего (включая голову)"
Я дал ответ, аналогичный тому, который был указан в следующем сообщении. Копирование содержимого следующего node в node для удаления и удаления следующего.
Удаление среднего node из одного связанного списка, когда указатель на предыдущий node недоступен
Но интервьюер снова спросил меня, что, если я передам адрес последнего node. Я сказал ему, поскольку следующий будет NULL, скопируйте этот NULL в поле данных вместе с адресом к следующему node, который также является NULL. Затем он сказал мне, что будет проблема оборванных указателей... которые я не понял. Может кто-нибудь пролить свет на эту проблему? Есть ли общее решение для этого?
Обновление (два дня спустя): немного больше. Учитывая, что в конце списка нет специального node. И последний node указывает на NULL, и если этот node задан как ввод, как сделать предыдущий node равным NULL. Или это невозможно?
Проще говоря: если в качестве входных данных для функции указывается node, как сделать указатель, который ссылается на нее, укажите NULL