Quote Originariamente inviata da Markus85 Visualizza il messaggio
Intanto ci riprovo nuovamente :-)

codice:
public static boolean verifica(AlberoBinario a){
  if(a==null) return false;
   if(a.sinistro()==null && a.destro()==null) return a.val()>=0;
    else{
      boolean b = verifica(a.destro());
       if(!b) return verifica(a.sinistro());
    }
   return true;
}
Sì, così con il return true; finale è funzionalmente corretto. Se b è true, non fai il sinistro e restituisce true. Se b è false, fai il sinistro e restituisce il suo risultato, qualunque sia. E' una forma di OR con comportamento detto short-circuit.

Ma è un po' contorto (e non mi piace granché). Conosci l'operatore di OR "logico"? Se conosci && (il AND "logico") ... dovresti.