Buenas, mi problema es el siguiente: he hecho una función, para borrar el ultimo elemento de una lista enlazada, tal como dice el título del post. A esta función se le pasa la dirección de memoria del nodo raiz, y a partir de ahi buscaríamos el ultimo nodo de la lista para borrarlo y poner el penultimo apuntando a NULL.
Estoy haciendo algo mal, porque al ejecutar el programa, muestro por pantalla la lista, y lo que me muestra, creo entender, es una dirección de memoria.
Aqui os pongo la función para borrar el ultimo nodo, he repasado todo de arriba a abajo y no se que es lo que hago mal, si necesitais que ponga el programa entero lo pongo sin problemas.
Código C++:
Ver originalvoid eliminaUltimo(nodo **r){
nodo *ulti = *r;
nodo *penulti = *r;
if(*r!=NULL){
if(ulti->siguiente = NULL){
*r = NULL;
delete ulti;
}else{
while(ulti->siguiente != NULL){
ulti = ulti->siguiente;
penulti -> siguiente = ulti;
}
penulti->siguiente = NULL;
delete ulti;
}
}
}
Un saludo y gracias.