一、树的遍历
【非递归版】
1. 后序
1 class Solution 2 { 3 public: 4 vector<int> postorderTraversal(TreeNode *root) 5 { 6 vector<int> answer; 7 stack<pair<TreeNode*,int>> s; 8 s.push(make_pair(root,0)); 9 while(!s.empty()) 10 { 11 TreeNode *now=s.top().first; 12 if(now==NULL) 13 { 14 s.pop(); 15 } 16 else 17 { 18 switch(s.top().second++) 19 { 20 case 0: 21 s.push(make_pair(now->left,0)); 22 break; 23 case 1: 24 s.push(make_pair(now->right,0)); 25 break; 26 case 2: 27 s.pop(); 28 answer.push_back(now->val); 29 break; 30 } 31 } 32 } 33 return answer; 34 } 35 };