Te explico: No te sale porque cuando encuentras el elemento que es igual al numero que buscas lo borras de una vez y cuando haces aux1=aux1->siguiente te debe dar un error porque el puntero apunta a la nada o no existe, no se como trabaja c++ porque soy mas diestro en c pero creo que ya la el puntero ni debe exisitir y si existe no contiene nada. En ese caso distindo a eliminar en forma de pilas o colas debes declarar 2 punteros uno que sea igual a incio y otro que valla atras de el para que cuando lo encuentres el numero que buscas hagas el enlace antes de borrar y la lista enlazada no quede desenlazada xD Saludos y espero haberte ayudado. Si tengo algun error de sintaxis disculpa como te dije nunca he trabajado con c++ solo con C.
Código C++:
Ver originalvoid Nodo::eliminar_busqueda( int b_num ) {
Nodo * aux1, *aux2;
int contador = 0;
if( inicio == NULL ) {
cout << "Lista vacia" << endl;
} else {
aux1 = inicio;
while( aux1 != NULL ) {
if( b_num == aux1 -> num ) {
contador++;
if(aux1 == inicio){
inicio = aux->siguiente;
delete aux1;
}
else if(aux1 == ultimo){
ultimo = aux2;
delete aux1;
}
else{
aux2->siguiente = aux1->siguiente;
delete aux1;
}
} else {
aux2 = aux1;
aux1 = aux1 -> siguiente;
}
}
}
if( contador == 0 ) {
cout << "\nNumero no encontrado" << endl;
}
}