From 37ff349aa0788f2db93e7f02a6aaf26b4c62d8ea Mon Sep 17 00:00:00 2001 From: Sainnhe Park Date: Tue, 31 Jan 2023 15:39:26 +0800 Subject: [PATCH] Add recurse.md --- notes/src/SUMMARY.md | 4 ++++ notes/src/recurse.md | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 notes/src/recurse.md diff --git a/notes/src/SUMMARY.md b/notes/src/SUMMARY.md index 3be6846..aa81aa1 100644 --- a/notes/src/SUMMARY.md +++ b/notes/src/SUMMARY.md @@ -41,6 +41,10 @@ - [总结](./stl.md) +# 技巧 + +- [递归](./recurse.md) + # 经典代码 - [合并两个有序链表](./merge_two_sorted_linked_lists.md) diff --git a/notes/src/recurse.md b/notes/src/recurse.md new file mode 100644 index 0000000..bea4553 --- /dev/null +++ b/notes/src/recurse.md @@ -0,0 +1,19 @@ +# 递归 + +```cpp +/* 足以描述下一次迭代完成状态的参数 */ recurseFunc(/* 足以完成当前迭代的参数 */) { + if (/* 结束条件 */) { + /* statements */ + } + + /* 进行下一次迭代 */ + + /* 进行当前迭代 */ + + /* 返回当前迭代结果 */ +} +``` + +并不是一定要先进行下一次迭代再进行当前迭代,实际上如果不需要下一次迭代就能完成当前迭代,那么其实也可以先进行当前迭代。 + +先进行当前迭代和先进行下一次迭代在迭代顺序上也有差别,参考二叉树的前中后序遍历。