概述
从程序设计的角度看,递归是一种程序设计方法。函数直接或间接地调用自身,称为递归调用。递归调用是用相同的策略去解决规模更小的问题,直至问题规模达到某个边界条件时,不再进行递归调用,而是直接处理。
函数递归调用的嵌套层数称为递归层次。其中,其他函数对递归函数的调用为第0层,递归函数第一次调用自身为第1层......以此类推。递归函数的执行过程为:
1. 执行第n-1(n>0)层的代码到调用递归函数时,进入第n层,执行第n层递归函数的代码。
2. 第n(n>0)层递归函数的执行结果返回到第n-1层,之后执行第n-1层调用递归函数之后的代码。
编写递归函数时需要注意:
1. 递归函数传入引用类型的数据时会改变数据本身。
2. 递归必须设置退出条件,而且每次递归时都是向退出条件逼近,否则就变成了无限递归,最终会出现StackOverflowError。