递归三要素:
1、确定递归函数的参数和返回值
2、确定终止条件
3、确定单层循环逻辑
前序遍历中递归函数的参数为当前的节点和数组以保存结点值,返回类型为空;终止条件为当前结点为空结点;单层循环逻辑是首先将根节点值加入数组,然后是左结点,其次是右结点。
Class Solution1{ // 前序遍历
public:
void Traversal(TreeNode* cur, vector<int> vec){
if(cur == NULL) return;
vec.push_back(cur->val);
TreeNode(cur->left, vec);
TreeNode(cur->right, vec);
}
vector<int> preorderTraversal(TreeNode* root){
vector<int> ans;
preorderTraversal(root,ans);
return ans;
}
};
Class Solution1{ // 中序遍历
public:
void Traversal(TreeNode* cur, vector<int> vec){
if(cur == NULL) return;
TreeNode(cur->left, vec);
vec.push_back(cur->val);
TreeNode(cur->right, vec);
}
vector<int> preorderTraversal(TreeNode* root){
vector<int> ans;
preorderTraversal(root,ans);
return ans;
}
};
Class Solution1{ // 后序遍历
public:
void Traversal(TreeNode* cur, vector<int> vec){
if(cur == NULL) return;
TreeNode(cur->left, vec);
TreeNode(cur->right, vec);
vec.push_back(cur->val);
}
vector<int> preorderTraversal(TreeNode* root){
vector<int> ans;
preorderTraversal(root,ans);
return ans;
}
};