Salve, io devo fare questo esercizio:
"Scrivere la funzione public static <E> int countIntNodes(Tree<E> T). La funzione deve effettuare una visita (ricorsiva) postorder dell’albero T e restituire il numero di nodi interni dell’albero."

Io ho fatto così, ma mi sembra un pò forzato. Avete qualche idea? Grazie a tutti!
codice:
    
public static <E> int countIntNodes(Tree<E> T) {
    if(T.isEmpty()) throw new EmptyTreeException("L'albero è vuoto");
    return count(T,T.root()) + 1;
}
    
public static <E> int count(Tree<E> T, Position<E> p) {
    int somma = 0;
    if(T.isExternal(p)) 
        return -1;
    if(T.isInternal(p)) {
        for(Position<E> v : T.children(p)) {
                somma = somma + 1 + count(T,v);
        }
    }
    return somma;
}