Удаление любого узла из единого связанного списка, когда указан только указатель на этот узел

Это вопрос, заданный мне в интервью .

«В памяти хранится единый связанный список. Вы должны удалить узел. Вам нужно написать функцию для удаления этого узла, которая принимает в качестве входных данных только адрес удаляемого узла и ничего больше (включая заголовок) »

Я дал ответ, аналогичный тому, который был дан в посте ниже - Копирование содержимого следующего узла в узел, который нужно удалить, и удаление следующего.

Удаление среднего узла из единого связанного списка, когда указатель на предыдущий узел недоступен

Но интервьюер снова спросил меня, что, если я передам адрес последнего узла. Я сказал ему, поскольку следующим будет NULL, скопируйте этот NULL в поле данных вместе с адресом следующего узла, который также равен NULL. Затем он сказал мне, что будет проблема с зависшими указателями ... чего я немного не понял. Кто-нибудь может пролить свет на эту проблему? Есть ли универсальное решение для этого?

Обновление (два дня спустя): немного доп. Учитывая, что в конце списка нет специального узла. И последний узел указывает на NULL, и если этот узел задан как вход, как сделать так, чтобы перед последним узлом указывалось на NULL. Или это невозможно?

Проще говоря: если узел задан в качестве входных данных функции, как сделать так, чтобы указатель, который на него ссылается, указывал на NULL

11
задан Community 23 May 2017 в 10:30
поделиться