Questa è una funzione che "dovrebbe"sommare solo gli elementi dell'albero che sono a livello dispari.
Secondo me questa funzione non arriva a tutti i nodi dell'albero fino in profondità,voi che ne pensate?Perchè appena c'è una return t->item non procede più per quel sottoalbero.
codice:
typedef struct nodo *ptree;
typedef struct nodo {
int item;
ptree left, right;
} nodeDescriptor;
// la funzione e' chiamata con liv=0;
int somma_livelli_dispari(ptree t, int liv){
if (t==NULL) return 0;
if (liv%2) return t->item;
else return somma_livelli_dispari(t->left, liv+1) + somma_livelli_dispari(t->right, liv+1);
}