diff --git a/C++/145. Binary Tree Postorder Traversal b/C++/145. Binary Tree Postorder Traversal new file mode 100644 index 0000000..1c68eb3 --- /dev/null +++ b/C++/145. Binary Tree Postorder Traversal @@ -0,0 +1,33 @@ +/** + * Definition for a binary tree node. + * struct TreeNode { + * int val; + * TreeNode *left; + * TreeNode *right; + * TreeNode() : val(0), left(nullptr), right(nullptr) {} + * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} + * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} + * }; + */ +class Solution { +public: + vector postorderTraversal(TreeNode* root) { + vector res; + if(root == NULL){ + return res; + } + + stack stk; + stk.push(root); + + while(!stk.empty()){ + root = stk.top(); + stk.pop(); + res.push_back(root->val); + if(root->left) stk.push(root->left); + if(root->right) stk.push(root->right); + } + reverse(res.begin(), res.end()); + return res; + } +};