对于递归有没有什么好的理解方法？
在用递归的时候，就像前面的同学说的那样，当成一个黑盒子，不要老是想着递归这着方法，而是只是把递归函数当成一个普通的调用函数，对这个函数，你需要知道他的输入与输出。 比如最简单的n的阶乘的递归实现，代码如下。 你在写这个函数的时候，把函数定义部分代码蒙起来，主要看这部分代码 那这样看代码，你懂了吗？ 如果你觉得还不懂的话，且听我下面说完。 不说性能上面的影响，递归的使用能让你的代码变得简单清晰，逻辑变得易懂，就比如下面这段代码，用非递归的方式实现阶乘。 这个函数与前面的递归函数求值是一样的，但是在函数逻辑上面差别非常大。 在递归函数里面，运用了一部分的数学逻辑在里面，能清晰看见数学等式，而非递归实现里面数学逻辑其实是隐藏起来的，是编码人员在知道数学逻辑的情况下实现，而没有体现在代码层面上。这样在数学逻辑变动的时候，维护起来是不太好的。 好哒，最后再说一句，如果递归不能让你的代码变得清晰，你自己看代码也会迷惑，那就不要生硬得用递归了。