Hola a todos espero puedan ayudarme con el siguiente ejercicio, trata de invertir una lista entregada, la idea es hacer el metodo y que reciba Nodolista x, mas abajo indicare el codigo pero mi idea es la siguiente.
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 originalvoid 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);
}