Ciao ragazzi,

qualcuno saprebbe dirmi perchè in questa funzione per inserire nuovi nodi in un albero binario non viene mai eseguita l'ultima istruzione (praticamente quando l'albero è vuoto...) e più in generale come potrei modificarla per renderla funzionante?

codice:
struct nodo {
 char *parola;
 int occorrenze;
 struct nodo *left;
 struct nodo *right;
 struct nodo *father;
};

void TreeInsert(struct nodo *albero, struct nodo *nuovo)
{
 if(albero)
  if(strcmp(nuovo->parola,albero->parola) == 0)
   albero->occorrenze++;
  else
   if(strcmp(albero->parola,nuovo->parola) < 0)
    TreeInsert(albero->left,nuovo);
   else
    TreeInsert(albero->right,nuovo);
 else
  albero = nuovo;
}
Grazie a tutti