class Solution {
public:
vector
postorderTraversal(TreeNode *root) {
vector
res; stack
>s; TreeNode *p = root; while(p!=NULL||!s.empty()) { while(p) { s.push(pair
(p,1)); p = p->left; } pair
q = s.top(); s.pop(); if(q.second==1) { s.push(pair
(q.first,2)); p = q.first->right; } else { res.push_back(q.first->val); p = NULL; } } return res; } };