只是另一个小问题。我还必须为我的 IntTree 类创建一个 equals 方法,它循环遍历两棵树并比较节点。如果树中的所有值都相等,则返回 true,否则返回 false。这是我到目前为止的代码:
private boolean equals(IntTreeNode node1, IntTreeNode node2){
if ((node1 != null) || (node2 != null)){
if (node1.equals(node2)){
equals(node1.left, node2.left);
equals(node1.right, node2.right);
return node1.equals(node2);
}
}
return false;
}
当我在我的驱动程序上调用此方法来比较完全相同的两棵树 (blah1.equals(blah2)) 时,我得到错误。但是,当我调用 blah1.equals(blah1) 时,我得到了真实的... 我也不确定我的返回声明是否正确
最佳答案
为什么不处理结果就做两个相等?
我会改变内部如果只是
return equals(node1.left, node2.left) && equals(node1.right, node2.right);
关于java - 比较两棵树的等于方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5383477/