计算机中的递归的基本思想是:把规模大的问题转化为规模小的相似的子问题来解决。在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生函数调用它自身的情况。另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况。
对于递归,最好的理解方式是从函数的功能意义的层面来理解,递归本质上也是函数的调用,在函数调用时总会把一些临时信息保存到堆栈,堆栈是为了函数能正确的返回。