这个问题让我很困惑。我有一棵树,想写一个方法来计算某个节点的孙子数量(但不包括曾孙)。我不能使用循环,只能使用递归。所以问题是如何实现基本情况?如何停止递归?我想不出这个应该如何实现...
在您的递归方法中添加一个depth
参数,并在自身调用之前将其加1,例如:
void myMethod(int depth) {
/* ... Do something ... */
if (depth < maxDepth) {
child.myMethod(depth + 1);
}
}
将“递归深度”参数传递给您的递归函数,并在每次调用函数时将其递增。
当达到限制时,停止递归。
countGrandChildren()
的递归调用传递任何参数。 - Oliver Charlesworth