class Solution { public: vector<int> postorderTraversal(TreeNode* root) { vector<int> v; stack<TreeNode*> s; TreeNode* h = root; TreeNode* cur = root; if(!root) return v; s.push(root); while(!s.empty()) { TreeNode* temp = s.top(); if(temp->left && h!=temp->left && h!=temp->right){ s.push(temp->left); }else if(temp->right && h!=temp->right){ s.push(temp->right); }else{ v.push_back(temp->val); s.pop(); h = temp; } } return v; } };