Ciao!!! Devo scrivere una procedura che inverta gli elementi di una lista. Cioè se l'input è 1,2,3,4 l'output sarà 4,3,2,1. Questa qui non funziona...Qualche suggerimento?? Grazie
codice:
void ribalta(Pnodo &TL1,Pnodo TL,Pnodo L)//TL1,TL ed L inizialmente sono tutti la testa lista
{
Pnodo tmp1,tmp2;
if(TL1==TL)
{
while(L->next!=NULL)
L=L->next;
tmp1=L;
tmp2=TL;
TL1=tmp1;
L=NULL;
TL1->next=tmp2;
return ribalta(TL1,TL,TL1);
}
else if(TL->next!=NULL)
{
while(L->next!=NULL)
L=L->next;
tmp1=L;
tmp2=TL;
L=NULL;
TL=tmp1;
TL->next=tmp2;
return ribalta(TL1,TL->next,TL->next);
}
}