关于递归函数的编写:明确一点,递归就是自己调用自己,对于函数的编写,从上到下分为三个部分
-
第一部分:编写递归到底的处理逻辑(此时不用调用自己)
-
第二部分:编写未递归到底的处理逻辑
-
第三部分:编写返回上一层调用时需要的处理逻辑
伪代码:
public void func(args){
//1.第一部分
if(递归到底){
//递归到底的处理逻辑
return;
}
//2.第二部分:改变参数,调用自身
func(changedArgs);
//3.第三部分:往上层回退时的处理逻辑(此处的逻辑第一次执行是在,递归到底返回之后,层数是在倒数第二层) //比如在递归操作树这个数据结构的时候,此处对应叶子节点的上一层,此时可以进行一些额外的逻辑处理
}