另一个简单的方法,但我似乎无法理解。我需要编写一种方法来比较两个二叉树的结构,并返回它们是否相同的天气。数据和数据类型不仅对结构不重要。这里有些例子:



这是我到目前为止的代码。我觉得真的很近。

public boolean sameStructure(OrderedSet<E> other) {
    if (other.size() != size)
        return false;
    return sameStructureHelp(other, root, other.root);
}

private boolean sameStructureHelp(OrderedSet<E> other, TreeNode ref,
        TreeNode otherRef) {
    if (otherRef == null && ref != null)
        return false;
    if (otherRef != null && ref == null)
        return false;
    sameStructureHelp(other, ref.left, otherRef.left);
    sameStructureHelp(other, ref.right, otherRef.right);
    return true;

}

最佳答案

您粘贴的内容基本上是正确的,只是缺少了一个关键部分:您应该返回其and值,而不是仅检查左右子树,这意味着如果以当前节点为根的树满足相同条件结构。

10-08 15:16