Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //--------using one stack--------
- vector<int> postOrder(Node* node) {
- if(!node)return {};
- stack<Node*>s;
- vector<int>v;
- while(!s.empty()||node){
- if(node){
- v.push_back(node->data);
- s.push(node);
- node=node->right;
- }
- else{
- node=s.top()->left;
- s.pop();
- }
- }
- reverse(v.begin(),v.end());
- return v;
- }
- //--------using two stack--------
- class Solution {
- public:
- vector<int> postorderTraversal(TreeNode* root) {
- if(!root)return {};
- stack<TreeNode*>s1,s2;
- vector<int>v;
- s2.push(root);
- while(!s2.empty()){
- TreeNode*ll=s2.top();
- s2.pop();
- s1.push(ll);
- if(ll->left)s2.push(ll->left);
- if(ll->right)s2.push(ll->right);
- }
- while(!s1.empty()){
- v.push_back(s1.top()->val);
- s1.pop();
- }
- return v;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment