Given a binary tree, return the postorder traversal of its nodes’ values.
For example:
Given binary tree{1,#,2,3},
1
\
2
/
3
return[3,2,1].
Note: Recursive solution is trivial, could you do it iteratively?
/*
前序遍历 根->右->左 结果再reverse一下
*/
class Solution {
public:
vector<int> temp;
vector<int> postorderTraversal(TreeNode *root) {
postorder(root);
reverse(temp.begin(),temp.end());
return temp;
}
void postorder(TreeNode *root)
{
if(!root)
{
return;
}
temp.push_back(root->val);
postorder(root->right);
postorder(root->left);
}
};
class Solution {
public:
vector<int> temp;
vector<int> postorderTraversal(TreeNode *root) {
postorder(root);
return temp;
}
void postorder(TreeNode *root)
{
if(!root)
{
return;
}
postorder(root->left);
postorder(root->right);
temp.push_back(root->val);
}
};