Java 所有节点的子节点数相等还是0

Java 所有节点的子节点数相等还是0,java,recursion,tree,Java,Recursion,Tree,我试图编写一个代码,说明所有父节点的子节点数是否相等。换句话说,如果所有父母都有相同数量的孩子。如果某个节点不是父节点,则不会将其视为false。但是,我的代码不起作用。当最后一个级别与预期的数字不匹配时,它不会返回false 我已经确定,所有子节点都需要与根节点具有相同数量的子节点 public boolean equalNumberOfChildren() { boolean correct = true; for (Person child : children) {

我试图编写一个代码,说明所有父节点的子节点数是否相等。换句话说,如果所有父母都有相同数量的孩子。如果某个节点不是父节点,则不会将其视为false。但是,我的代码不起作用。当最后一个级别与预期的数字不匹配时,它不会返回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;
}

重写递归调用的结果。仅当发现递归调用“正确”时,才需要查询子级


重写递归调用的结果。仅当发现递归调用“正确”时,才需要查询子级


“我的代码不起作用”什么不起作用?请给出期望值和实际值output@SharonBenAsher当最后一个级别与预期的数字不匹配时,它不会返回false。我假设children是NodeList类型的字段,xml结构的深度(即多少个级别)是多少,还是任意深度。我们在这里讨论的是W3CXMLDOM,对吗?“我的代码不起作用”什么不起作用?请给出期望值和实际值output@SharonBenAsher当最后一个级别与预期的数字不匹配时,它不会返回false。我假设children是NodeList类型的字段,xml结构的深度(即多少个级别)是多少,还是任意深度。我们在这里讨论的是W3CXMLDOM,对吗?
    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;