# 递归 ```cpp /* 足以描述下一次迭代完成状态的参数 */ recurseFunc(/* 足以完成当前迭代的参数 */) { if (/* 结束条件 */) { /* statements */ } /* 进行下一次迭代 */ /* 进行当前迭代 */ /* 返回当前迭代结果 */ } ``` 并不是一定要先进行下一次迭代再进行当前迭代,实际上如果不需要下一次迭代就能完成当前迭代,那么其实也可以先进行当前迭代。 先进行当前迭代和先进行下一次迭代在迭代顺序上也有差别,参考二叉树的前中后序遍历。