为什么要慎用递归
递归会导致函数的时间复杂度与空间占有大大增加
递归代码容易导致堆栈溢出。函数调用会使用栈来保存临时变量,每次调用一个函数,都会将临时变量封装为一个栈帧压入内存栈,等函数执行完毕返回时,才出栈。系统栈或者虚拟机(JVM)栈空间一般都不大,如果递归求解的数据规模很大,递归调用层次较多,就会一直压入栈,会有堆栈溢出的风险。