我很困惑,因为我需要我的数组等于另一个数组,但我不知道如何比较它们而不丢失它们的值
问问题
62 次
2 回答
2
如果两个根都为空,您将根据您尝试对第二个 if 条件执行的操作得到不希望的结果。
看起来如果两个根都为空,你想返回 true,但你返回 false。你可以只使用一个 if 语句
if(thisRoot == null || otherRoot == null){
return thisRoot == null && otherRoot == null;
}
您在如何比较两个节点的数据方面存在更大的问题。
thisRoot.getData() != otherRoot.getData()
这种比较不是我认为你正在寻找的。相反,您应该覆盖数据对象的 equals 方法并使用它进行比较
于 2019-11-11T21:02:21.253 回答
1
您的条件顺序会导致问题。
if (thisRoot == null || otherRoot == null) {
return false;
}
if (thisRoot == null && otherRoot == null) {
return true;
}
即使两个分支都是,第一个条件也将评估为true
(并导致) 。您应该首先评估两个分支是否都是; 之后,您可以检查其中只有一个是 的情况。return false
null
null
null
于 2019-11-11T21:02:34.483 回答