力扣-二叉树-144.145. 94 前、后、中序遍历,
思路
三种递归遍历方式
前序遍历代码
class Solution {
public:
void preTree(vector<int> &nums, TreeNode* node){
if(node == nullptr) return;
nums.push_back(node->val);
preTree(nums, node->left);
preTree(nums, node->right);
return;
}
vector<int> preorderTraversal(TreeNode* root) {
vector<int> res;
preTree(res, root);
return res;
}
};
后序遍历代码
class Solution {
public:
void postTree(vector<int> &nums, TreeNode* node){
if(node == nullptr) return;
postTree(nums, node->left);
postTree(nums, node->right);
nums.push_back(node->val);
return;
}
vector<int> postorderTraversal(TreeNode* root) {
vector<int> res;
postTree(res, root);
return res;
}
};
中序遍历代码
class Solution {
public:
void inorderTree(vector<int> &nums, TreeNode* node){
if(node == nullptr) return;
inorderTree(nums, node->left);
nums.push_back(node->val);
inorderTree(nums, node->right);
return;
}
vector<int> inorderTraversal(TreeNode* root) {
vector<int> res;
inorderTree(res, root);
return res;
}
};