x-> [1| ] -> [2| ] -> [3| ] -> [4| ] -> [5| ] -> NULL
___________________________________________
LO QUE ESTA CON COLOR NARANJO ES LA POSICION DONDE SE ENCUENTRA EL PUNTERO X
LO QUE ESTA CON COLOR VERDE EL LA POSICION DEL AUXILIAR2(AUX2)
x-> [1| ] -> [2| ] -> [3| ] -> [4| ] -> [5| ] -> NULL
aux1-> [1| ] -> [2| ] -> [3| ] -> [4| ] -> [5| ] -> NULL
aux1-> [1| ] -> NULL |||||||| x-> [2| ] -> [3| ] -> [4| ] -> [5| ] -> NULL
aux1-> [1| ] -> [2| ] -> [3| ] -> [4| ] -> [5| ] -> NULL
aplicar recursion
aux2->[2| ]-> aux1-> [1| ] ->NULL |||||| x -> [3| ] -> [4| ] -> [5| ] -> NULL
SI SE FIJAN LO QUE LE VA SOBRANDO A X ES LO QUE PASO EN EL ARGUMENTO PARA EJECUTAR LA RECURSION, soy bastante malo usando punteros lo que se me a ocurrido hasta el momento es lo siguiente. Si alguien se le ocurre como ayudar esta idea en java tambien es bienvenida, ojala puedan ayudarme saludos.
Código C:
Ver original
void inverlista(Nodolista *x) { if ( x->sig==NULL ) { return x; } if( x->sig!=NULL) { Nodolista aux1; x=x->sig; aux1=aux1->NULL; } while(x!=NULL) { Nodolista *aux2; x=x->sig; *aux2=aux2->aux1; } return inverlista(Nodolista x); }