如果必须填充数组,如何使数组相等?

时间:2019-11-11 20:58:54

标签: java tree binary isomorphic

我很困惑,因为我需要我的数组与另一个数组相等,但是我不知道如何比较它们而不丢失它们的值

2 个答案:

答案 0 :(得分:2)

如果两个根都为空,则根据您尝试对第二个if条件执行的操作,将得到不希望的结果。

如果两个根都为null,则您想返回true,但是返回false。您可以只使用一个if语句

if(thisRoot == null || otherRoot == null){
  return thisRoot == null && otherRoot == null;
}

如何比较两个节点的数据存在更大的问题。

thisRoot.getData() != otherRoot.getData()

这个比较不是我想您要的。相反,您应该为数据对象重写equals方法,并改为使用它进行比较

答案 1 :(得分:1)

您的条件顺序会导致问题。

if (thisRoot == null || otherRoot == null) {
    return false;
}
if (thisRoot == null && otherRoot == null) {
    return true;
}

即使两个分支均为true,第一个条件也将求值为return false(并导致null)。 您应该首先评估两个分支是否均为null;之后,您可以检查其中只有一个是null的情况。