编写一个递归函数时,不用去想进入该函数之后具体调用了几层递归栈,以及触碰到递归结束条件后递归栈是怎么一层层返回的,总结后只需关注以下三点:
· 直接考虑最后一层,即递归结束条件;
· 面对一个递归调用,只须像调用一个类方法那样,不需考虑其具体实现(例如去考虑递归了哪几层等等),而是直接认为其实现了功能,即只关注该递归调用的最终返回结果;
· 功能实现过程分为两块儿,一块儿是递归调用部分,认为已实现其功能,一块儿便是实现函数功能的细节部分,这是摆脱递归的部分。
编写一个递归函数时,不用去想进入该函数之后具体调用了几层递归栈,以及触碰到递归结束条件后递归栈是怎么一层层返回的,总结后只需关注以下三点:
· 直接考虑最后一层,即递归结束条件;
· 面对一个递归调用,只须像调用一个类方法那样,不需考虑其具体实现(例如去考虑递归了哪几层等等),而是直接认为其实现了功能,即只关注该递归调用的最终返回结果;
· 功能实现过程分为两块儿,一块儿是递归调用部分,认为已实现其功能,一块儿便是实现函数功能的细节部分,这是摆脱递归的部分。