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