简单的递归
对于简单递归,如求阶乘,求和,求上台阶问题,斐波那契数列等问题应用递归,运用这些问题理解递归时可以很轻松的掌握递归程序的执行流程及递归的思想,若有什么不清楚的地方,还可以debug一下看程序是如何执行的,程序如何压栈如何出栈最后计算出结果你都可以完完全全的理解。
无法理解的递归
但是,有些递归已经困扰我两天了,我debug也无法知道他为什么可以这样子执行,于是我到处搜索答案,终于看到了一句解救我的十分富有哲理的话 对递归的理解在于放弃,放弃你对于理解和跟踪递归全程的企图,只理解递归两层之间的交接,以及递归终结的条件。 仔细一想十分有道理,当你用回溯算法的时候,你十分理解回溯算法的思想,但是你非要探寻程序运行的全过程你是左思右想,左debug右debug你也不知道程序为什么要这么走,所以这个时候你就放弃吧,记住该记住的。