递归转循环
通过手动维护一个栈结构,加上循环逻辑,那么,理论上递归就可以被取代了,事实也确实如此,所有的递归,都可以转为【栈+循环】的结构,这些可以找相应的文章查阅。栈有了,那还得来个循环,而循环首先要确定终止条件,这个倒是不难,由递归改造而来的循环,自然是递归调用结束,也就是栈里面没内容时。对于这剩下的三阶,就是重复计算了,而它们的计算结果显然是可以共用的,这就引出了一种通用的优化方案:利用。笔者认为,递归是不可控的,业务数据难免存在错误数据,一旦没有很好的把控,递归层数激增,对于递归,往往存在着重复计算,如本例,






