La suppression d'un nœud à partir d'une seule liste, lorsque seulement le pointeur vers le nœud donné

C'est une question que je me posais dans une interview.

"Une seule liste, il y a dans la mémoire. Vous devez supprimer un nœud. Vous avez besoin d'écrire une fonction pour supprimer ce nœud, qui ne prend que l'adresse du nœud d'être supprimé, comme l'entrée et rien d'autre(y compris la tête)"

J'ai donné la réponse similaire à celle de réponse ci-dessous post -- Copier le contenu du nœud suivant dans le nœud à supprimer et supprimer le suivant.

La suppression d'un milieu nœud à partir d'une seule liste liée lorsque le pointeur vers le nœud précédent n'est pas disponible

Mais l'interviewer a demandé de nouveau de moi, ce que si je passe l'adresse du dernier nœud. Je lui ai dit que, depuis que le prochain sera un NULL, copiez cette valeur NULL dans le champ de données ainsi que l'adresse vers le nœud suivant, qui est également NULLE. Puis il m'a dit il y aura un problème de pendre des pointeurs... que je n'ai pas comprendre un peu. Peut quelqu'un s'il vous plaît jeter la lumière sur ce problème ? Est-il un générique solution ?

Mise à jour (Deux jours plus tard) : Un petit peu plus. Vu qu'il n'y est pas de nœud spécial à la fin de la liste. Et le dernier nœud points à NULL et si ce nœud est donnée en entrée, comment faire de l'avant-dernier point de nœud à NULL. Ou est-ce impossible ?

Il suffit de mettre : Si un nœud est donnée en entrée à une fonction, comment faire le pointeur de la référence, du point de NULLE

Demandez-vous quel est le balançant pointeur de la question? ou comment le résoudre?
Les deux, en fait je veux savoir à propos balançant pointeur aussi..

OriginalL'auteur King | 2012-02-20