Ciao a tutti!
Nel programma sugli alberi che sto facendo, devo eliminare tutti i nodi.

codice:
void elimina(TREE *p_T) {

   if(*p_T!=NULL)
   {
     if ((*p_T)->left!=NULL)
        elimina(&(*p_T)->left); 
   
     if ((*p_T)->right !=NULL) 
        elimina(&(*p_T)->right);
         
     *p_T=NULL;
     free(*p_T);
   }
   else
     *p_T=NULL;
}
Vorrei chiedervi se è giusto..a me non sembra, perché probabilmente il programma pone a NULL i vari nodi ma non li libera. Ma allora come fare? Sapreste dirmelo?

Grazie