二进制搜索树在java中,布尔值

时间:2015-05-22 11:51:05

标签: java boolean

在此代码中,我不承担此行loEs = (actual.left == null && actual.right == null); 如何返回loEs = true?

public boolean isLeaf(E e) { 
   return isLeaf(e, this.root); 
}
protected boolean isLeaf(E e, NBT<E> actual) {
   boolean loEs = false;
   if (actual != null) {
       int res = actual.data.compareTo(e); 
       if (res == 0)      loEs = (actual.left == null && actual.right == null);
       else if (res > 0)  loEs = isLeaf(e, actual.left);
       else                loEs = isLeaf(e, actual.right); 
   }
   return loEs;
}

由于

2 个答案:

答案 0 :(得分:0)

将为loE分配一个取决于两个条件的布尔值:

  • actual.left == null
  • actual.right == null

由于操作数是&amp;&amp;,所以real.left == null AND actual.right == null必须为true才能使loE成为真。

基本上有4个可能性:

actual.left == null AND actual.right == null : loEs == true
actual.left != null AND actual.right == null : loEs == false
actual.left == null AND actual.right != null : loEs = false
actual.left != null AND actual.right != null : loEs = false

答案 1 :(得分:0)

loEs = (actual.left == null && actual.right == null);为字段loEs分配一个布尔值。表达式(actual.left == null && actual.right == null)是一个返回truefalse

的测试

相当于:

if (actual.left == null && actual.right == null) {
    loEs = true;
} else {
    loEs = false;
}

因此,如果actual.left等于nullactual.right等于null,则loEs字段等于true。这是该字段等于true的唯一情况。