Buongi, sono alle primissime armi con le liste e ho non poche difficoltà, avevo pensato di fare un semplicissimo algoritmo in modo tale da ordinare una serie di nodi cosi come si fa con un vettore (il modo più semplice per me).

Purtroppo però la seguente function non viene proprio compliata, perchè?
P.S. nodoPtr è definito come "nodo *nodoPtr" ;

codice:
void ordinalista (nodoPtr *lista)
{
    nodoPtr curr;
    nodoPtr temp;

    curr=lista;
    curr=curr->next;

    while(lista!=NULL)
    {
        while(curr!=NULL)
        {
            if(lista->numero > curr->numero)
            {
                temp=malloc(sizeof(nodo));
                temp->numero=curr->numero;
                curr->valore=lista->numero;
                lista->numero=temp->numero;
                free(temp);
            }
            curr=curr->next;
        }
        lista=lista->next;
    }
}