分别按照二叉树先序,中序和后序打印所有的节点
vector<vector<int> > res;
vector<int > pre;
vector<int > in;
vector<int > post;
void preorder(TreeNode* root){
if(!root) return ;
pre.push_back(root->val);
preorder(root->left);
preorder(root->right);
}
void inorder(TreeNode* root){
if(!root) return ;
preorder(root->left);
in.push_back(root->val);
preorder(root->right);
}
void postorder(TreeNode* root){
if(!root) return ;
preorder(root->left);
preorder(root->right);
post.push_back(root->val);
}
vector<vector<int> > threeOrders(TreeNode* root) {
// write code here
preorder(root);
inorder(root);
postorder(root);
for(int i=0;i<pre.size();i++){
res[0].push_back(pre[i]);
}
for(int i=0;i<in.size();i++){
res[1].push_back(in[i]);
}
for(int i=0;i<post.size();i++){
res[2].push_back(post[i]);
}
return res;
}
3个递归 但是报错 不知道错哪了