Java foreach递归返回(树中的子节点数)

时间:2017-10-22 14:21:06

标签: java recursion foreach tree

我遇到一个简单的递归函数的问题,该函数应该返回树中的子项数,它只会在每个忽略foreach的子节点的第一个子节点中,因为函数已经返回了一些东西。 我不知道该怎么做。

public static int numberOfChildren(Node<Integer> a) {
    if(!a.isLeaf()) {
        for(Node<Integer> f : a.getChildren()) {
            return 1 + numberOfChildren(f);
        }
    }
    return 0;
}

1 个答案:

答案 0 :(得分:1)

int nbr = 1;
for (Node<Integer> f: a.getChildren()) {
nbr += numberOfChildren(f);
}
return nbr;