这个问题令我感到困惑。我有一棵树,我想写一个方法,计算某个节点的孙子数(但不是伟大的granchildren)。我不能使用循环,只能递归。所以问题是如何实现我的基础案例?我怎么让它停下来?我想不出一种方法可以实现......
答案 0 :(得分:7)
对你的递归方法有一个depth
参数,并在它自我调用之前加1,即:
void myMethod(int depth) {
/* ... Do something ... */
if (depth < maxDepth) {
child.myMethod(depth + 1);
}
}
答案 1 :(得分:2)
将“递归深度”参数传递给递归函数,并在每次调用函数时递增它。
当你达到极限时,你就会停止递归。