leetcode/notes/src/recurse.md

580 B

递归

/* 足以描述下一次迭代完成状态的参数 */ recurseFunc(/* 足以完成当前迭代的参数 */) {
  if (/* 结束条件 */) {
    /* statements */
  }

  /* 进行下一次迭代 */

  /* 进行当前迭代 */

  /* 返回当前迭代结果 */
}

并不是一定要先进行下一次迭代再进行当前迭代,实际上如果不需要下一次迭代就能完成当前迭代,那么其实也可以先进行当前迭代。

先进行当前迭代和先进行下一次迭代在迭代顺序上也有差别,参考二叉树的前中后序遍历。