【问题标题】:Is the number of child nodes equal for all nodes or 0是所有节点的子节点数相等还是0
【发布时间】:2019-03-30 11:50:29
【问题描述】:

我正在尝试编写一个代码来说明所有父节点的子节点数量是否相等。换句话说,如果所有父母都有相同数量的孩子。如果某个节点不是父节点,则不认为它是错误的。但是,我的代码不起作用。当最后一个级别与预期数字不匹配时,它不会返回 false。

我已经确定,所有子节点都需要与根节点具有相同数量的子节点。

public boolean equalNumberOfChildren() {
    boolean correct = true;
    for (Person child : children) {
        correct = child.equalNumberOfChildren();
        if (correct == true && child.children.size() == children.size() || child.children.size()==0) {
            correct = true;
        }else {
            correct = false;
        }
    }
    return correct;
}

【问题讨论】:

  • “我的代码不工作”什么不工作?请给出预期和实际输出
  • @SharonBenAsher 最后一级与预期数量不匹配时不返回false。
  • 我是否正确假设 children 是 NodeList 类型的字段,您的 xml 结构的深度是多少(即多少级)或者它是任意深度。我们这里说的是 w3c xml dom,对吧?

标签: java recursion tree


【解决方案1】:

您覆盖了递归调用的结果。仅当发现递归调用“正确”时,您才需要询问孩子

    correct = child.equalNumberOfChildren();  // assign value to correct
    // continue only if not found discrepency 
    if (correct && (child.children.size() == children.size() || child.children.size()==0)) {
        correct = true;
    }else {
        correct = false;
    }
}
return correct;

【讨论】:

    猜你喜欢
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    相关资源
    最近更新 更多