我被要求写一个递归方法来调查是否有任何一个孩子。我已经得到了基本情况,但我对如何处理递归部分感到有点困惑,因为我需要调查右边和左边的子树,如果其中一个有一个子节点则返回false,如果其中一个有子节点则返回true 0个孩子或复发。
到目前为止我所拥有的是:
public static boolean noSingleChildren( BinaryTreeNode t ) {
if (rightC == null || leftC == null) {
return false;
} else if (rightC == null && leftC == null) {
return true;
} else {
return............
}
}
答案 0 :(得分:2)
逻辑非常简单:
null
孩子相同的问题,并使用逻辑“或”组合答案。因为这看起来像是家庭作业,所以我将实施留给你。
答案 1 :(得分:1)
public static boolean noSingleChildren( BinaryTreeNode t ) {
if (rightC == null || leftC == null) {
return false;
} else if (rightC == null && leftC == null) {
return true;
} else {
return noSingleChildren(t.getLeftBranch()) || noSingleChildren(t.getRightBranch());
}
}
答案 2 :(得分:1)
何,我喜欢树木问题:
public static boolean hasSingleChildren( BinaryTreeNode t ) {
if (t == null) {
return false;
} else if (t.rightC == null && t.leftC != null) {
return true;
} else if (t.rightC != null && t.leftC == null) {
return true;
} else {
return hasSingleChildren(t.rightC) || hasSingleChildren(t.leftC);
}
}