Secondo voi è coretta in questo modo??? Di andare va...:

public static boolean isBST(AlberoBinImpl a){

if(a==null)
return true;

else
return isBST(a.getSin())&&
isBST(a.getDes())&&
eMinoreDi(a.getVal(), a.getSin())&&
eMaggioreDi(a.getVal(), a.getDes());
}

private static boolean eMinoreDi(int val, AlberoBinImpl a) {

if(a==null) return true;

else if(a.getSin()==null && a.getDes()==null)
return a.getVal()<val;
else
return a.getVal()<val && eMinoreDi(val, a.getSin()) && eMinoreDi(val, a.getDes());
}
private static boolean eMaggioreDi(int val, AlberoBinImpl a) {

if(a==null) return true;

else if(a.getSin()==null && a.getDes()==null)
return a.getVal()>val;

return a.getVal()>val && eMaggioreDi(val, a.getSin()) && eMaggioreDi(val, a.getDes());
}