Esta es una pregunta que se me hizo en una entrevista.Eliminación de cualquier nodo de una sola lista vinculada cuando solo se da un puntero a ese nodo
"Hay una sola lista vinculada en la memoria. Debe eliminar un nodo. Debe escribir una función para eliminar ese nodo, que toma solo la dirección del nodo que se eliminará como entrada y nada más (incluyendo la cabeza) "
Di la respuesta similar a la respuesta en la publicación a continuación - Copiando el contenido del siguiente nodo en el nodo a eliminar y eliminando el siguiente.
Deleting a middle node from a single linked list when pointer to the previous node is not available
Pero el entrevistador me preguntó de nuevo, lo que si paso la dirección del último nodo. Le dije, ya que el siguiente será un NULL, copie ese NULL en el campo de datos junto con la dirección al siguiente nodo que también sea NULL. Luego me dijo que habría un problema de punteros colgantes ... que no entendí un poco. ¿Puede alguien arrojar luz sobre este problema? ¿Hay una solución genérica para esto?
Actualización (Dos días después): Un poco más. Teniendo en cuenta que no hay ningún nodo especial al final de la lista. Y el último nodo apunta a NULL y si ese nodo se da como entrada, cómo hacer que el anterior nodo sea NULL. ¿O es imposible?
En pocas palabras: si un nodo se da como entrada para una función, cómo hacer que el puntero que hace referencia a ella, seleccione NULL
¿Se está preguntando cuál es el problema del puntero colgante? o como resolverlo? – amit
Ambos, de hecho, también quiero saber sobre el puntero colgante. – King