private void case1(Tree t, Tree root) {
//System.out.println(root.left != t);
if (root.left != t || root.right != t)
case1(t, (root.value > t.value) ? root.left : root.right);
else {
if (root.left == t)
root.left = null;
else
root.right = null;
}
为什么即使root.left实际上等于't',第一个IF条件也会被评估为TRUE?我已经通过打印到控制台验证了,第一个条件确实是假的。所以IF条件应该是假的,但仍然会对语句进行评估。整个代码非常大;如有必要,我可以提供更多的片段。
答案 0 :(得分:0)
使用&&作为||对于(OR)运算符,好像即使一个语句为真,它也将返回true;如果是(AND),则if中的两个语句必须为true,然后才返回true。