1.递归的定义
所谓的方法递归就是在一个方法执行的内部,自己调用了自己的过程。递归有两个子过程:递过程和归过程。
递过程:函数不断调用自身,直到走到函数的终止条件,第一阶段结束。逐层向下
归过程:函数不断返回的过程,逐层向上。
2.什么场景下能使用方法递归?
这里我们分为三个点:第一当我们需要将一个大问题转化为若干个子问题的解;第二拆分后的子问题和原问题除了数据规模相同,解决问题的思路也完全相同;第三必须存在递归的终止条件(不会无限拆分下去,一定能走到最底部)。
3.怎样写出递归的代码?
在写递归函数时,千万不要纠结这个函数内部到底咋实现,而是要注意这个方法的语义(也就是这个函数到底有什么功能),你就假设这个方法已经别人写好了,你只是调用这个方法而已。
简而言之,就是终止条件(不借助任何函数就能知道答案的值)+不借助任何方法就能实现的步骤 + 剩下的问题利用这个方法去解决。
4。递归函数的关键
方法调用时,程序会卡在方法调用处,直到方法返回继续运行