Questa è una domanda posta in un'intervista.Eliminazione di qualsiasi nodo da un singolo elenco collegato quando viene fornito solo il puntatore a quel nodo
"Un solo elenco collegato è presente nella memoria È necessario eliminare un nodo. È necessario scrivere una funzione per eliminare quel nodo, che richiede solo l'indirizzo del nodo da eliminare come input e nient'altro (compresa la testa) "
Ho dato la risposta simile a quella che ho risposto nel post seguente - Copiando il contenuto del nodo successivo nel nodo da eliminare e cancellando quello successivo.
Deleting a middle node from a single linked list when pointer to the previous node is not available
Ma l'intervistatore mi ha chiesto ancora una volta, che cosa se mi passate l'indirizzo del ultimo nodo. Gli ho detto, dal momento che il prossimo sarà un NULL, copia quel NULL nel campo dati insieme con l'indirizzo al nodo successivo che è anche NULL. Poi mi ha detto che ci sarà un problema di puntatori penzolanti ... che non ho capito un po '. Qualcuno può gettare luce su questo problema? C'è una soluzione generica a questo?
Aggiornamento (due giorni dopo): Un po 'aggiuntivo. Considerando che non ci sono nodi speciali alla fine della lista. E l'ultimo nodo punta a NULL e se quel nodo è dato come input, come rendere l'ultimo nodo prima punto a NULL. O è impossibile?
poche parole: Se un nodo è dato come input ad una funzione, come rendere il puntatore che fa riferimento a esso, scegliere NULL
Stai chiedendo qual è il problema del puntatore penzolante? o come risolverlo? – amit
Entrambi, in realtà voglio sapere anche sul puntatore che penzola. – King