ciao ragazzi sono nuovo del forum ed ho questo problema: voglio creare una lista ricorsivamente in c ma mi restituisce sempre il puntatore a null.

codice:
struct elemento*crea_lista(struct elemento*testa,struct elemento*app, int n)
{
  if (n==0)
    return testa;
  else
    {
     if (testa==NULL)
       {    
         testa=(struct elemento*)malloc(sizeof(struct elemento));  
         testa->inf=3;
         app=testa;
         app->next=crea_lista(testa,app,n-1);
       }
     else
       {   
        app=(struct elemento*)malloc(sizeof(struct elemento));
        app->inf=4;
        app->next=crea_lista(testa,app,n-1);
       }
    }
}
dimenticavo N numero di elemento della lista e testa e app vengono preinizializzati a NULL nel main