java中的二叉搜索树,布尔
在这段代码中,我不理解这一行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;
}
谢谢
# 1 楼答案
LOE将被分配一个布尔值,该布尔值取决于两个条件:
因为操作数是&&;,都是真实的。left==null和实际值。right==null必须为true才能使LOE为true
基本上有4种可能性:
# 2 楼答案
行
loEs = (actual.left == null && actual.right == null);
为字段loEs
指定一个布尔值。表达式(actual.left == null && actual.right == null)
是返回true
或false
的测试这相当于:
因此,如果
actual.left
等于null
并且actual.right
等于null
,那么loEs
字段等于true
。这是字段等于true
的唯一情况