Il mio problema è quello di eliminare più nodi da un albero, che devono rispettare una determinata proprietà. Ho già fatto la cancellazione di un solo elemento dall'albero e non h avuto problemi, allora ho pensato di richiamare la funzione che cancella un singolo nodo ogni qualvolta durante la visita dell'albero , il dato contenuto rispettasse quella proprietà e cioè :

codice:
nodo *elimina_lista_prop(nodo *root,int p,char *str2,char *str3){
    if(root!=NULL){
        if(root->sx!=NULL)
            elimina_lista_prop(root,p,str2,str3);
        if (condizione)
            root=cancella_nodo_abr(root,root->stringa);
        if(root->dx!=NULL)
            elimina_lista_prop(root,p,str2,str3);
    }
return root;
}
Questo codice mi da problemi in esecuzione, la logica è completamente sbagliata ?