Salve a tutti , sono alle prese con un esercizio che richiede l'utilizzo delle liste e della ricorsione. Il testo dell'esercizio e':
/*Scrivere una funzione ricorsiva che restituisca il massimo degli interi contenuti in una lista concatenata.*/
.
Ho pensato di applicare lo stesso ragionamento che ho applicato allo stesso esercizio dove invece di utilizzare le liste si utilizzavano i vettori. Pensavo che il ragionamento andasse bene ma a quanto pare c'è qualcosa da sistemare perché se nella lista inserisco 1 2 3 4 5 invece di restituirmi come valore massimo 5 mi restituisce 4. Potreste aiutarmi a capire cosa c'è di sbagliato?
Ecco il codice:
int massimoric(struct elemento *p, int l, int r){
int u, v;
int m=(l+r)/2;
if(l==r)
return p->inf;
u=massimoric(p->next,l,m);
v=massimoric(p->next,m+1,r);
if(u>v)
return u;
else
return v;
}