我正在尝试编写一个代码来说明所有父节点的子节点数量是否相等。换句话说,如果所有 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/