java - 比较两棵树的等于方法

标签 java recursion tree equals nodes

只是另一个小问题。我还必须为我的 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/

相关文章:

c# - 递归调用 async-void : any guarantee on the stack limit?

javascript - 在 D3.js 树布局中为每个节点单独指定 nodeSize

java - 如何直接读取 JRE 发行版中包含的时区文件?

java - 如何判断用户输入是否有x个字符

java - 减少属性树

java - 流水线排程递归解决错误

java - 在java中移动非静态坐标

java - Java中有序数组的索引

typescript - 在 typescript 中递归转换对象树的所有叶子

MySql 在具有重复节点的闭包表中对分层数据进行排序