Pero si te lo acabo de comentar: si tienes a->b->c y quieres eliminar 'b', tendras que reasignar 'c' como siguiente de 'a', de lo contrario en el siguiente volcado de la lista estaras accediendo a bloques de memoria no accesibles desde la aplicacion:
Código C:
Ver original[inicial] = nodo 0
[nodo 0] -> siguiente = nodo 1
[nodo 1] -> siguiente = nodo 2
[nodo 2] -> siguiente = nulo
El puntero siguiente que tienes en 'nodo0' apunta a la direccion de memoria que bloqueas para 'nodo1'; si eliminas 'nodo1' el siguiente de 'nodo0' seguirá apuntando a esa misma direccion de memoria, excepto que una vez la has liberado (delete) ya no es accesible por tu aplicacion aun cuando contenga algun tipo de dato.
Saludos
vosk