经过一定的步骤后停止递归

这个问题令我感到困惑。 我有一棵树,我想写一个方法,计算某个节点的孙子数(但不是伟大的granchildren)。 我不能使用循环,只能递归。 所以问题是如何实现我的基础案例? 我怎么让它停下来? 我想不出这会实现的方式……

对你的递归方法有一个depth参数,并在它自我调用之前添加1,即:

 void myMethod(int depth) { /* ... Do something ... */ if (depth < maxDepth) { child.myMethod(depth + 1); } } 

将“递归深度”参数传递给递归函数,并在每次调用函数时递增它。

当你达到极限时,你就会停止递归。