java - 所有节点的子节点数是否相等或者为 0

标签 java recursion tree

我正在尝试编写一个代码来说明所有父节点的子节点数量是否相等。换句话说,如果所有 parent 都有相同数量的 child 。如果某个节点不是父节点,则不会将其视为 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;
}

最佳答案

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

    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;

关于java - 所有节点的子节点数是否相等或者为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55431146/

相关文章:

c++ - 优化此递归函数[Boggle解析器]

python - 将树节点转换为边端点的坐标

java - 删除树结构中没有特定子节点的节点

java - 小程序性能: loading all jars at startup or only when class is needed?

java - 有没有一个java程序来检查2个组合句子是否有意义?

java - ImageView getLocationtOnScreen 安卓

haskell - 多态递归 - 语法和用途?

java - 我可以将 HashMap 键和值交换到其他吗?

c - Bison 的右递归规则存在问题

tree - XQuery可以支持树结构查询吗?