前中后序的递归遍历
递归算法的三要素
- 确定递归函数的参数和返回值:要确定哪些参数是递归过程中需要处理的,需要处理的就在递归函数里面加上这个参数;然后确定每次返回的递归值是什么;
- 确定终止条件:必须写终止条件;如果不写终止条件就会栈溢出;
- 确定单层递归的逻辑: 确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。
前序遍历代码
class Solution {
public:void traversal(TreeNode* cur, vector<int>& vec) {if (cur == NULL) return;vec.push_back(cur->val); // 中traversal(cur->left, vec); // 左traversal(cur->right, vec); // 右}//中、后序遍历换下顺序;vector<int> preorderTraversal(TreeNode* root) {vector<int> result;traversal(root, result);return result;}
};