leetcode:Binary Tree Postorder Traversal

2015-07-22 20:10:21 · 作者: · 浏览: 23
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; } };