一、树的遍历

【非递归版】

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 };
View Code

相关文章:

  • 2022-12-23
  • 2021-08-16
  • 2022-02-05
  • 2021-08-24
  • 2021-04-18
  • 2021-09-17
  • 2022-12-23
  • 2021-09-16
猜你喜欢
  • 2022-12-23
  • 2021-08-18
  • 2021-12-26
  • 2021-08-09
  • 2022-01-07
  • 2021-06-24
  • 2022-12-23
相关资源
相似解决方案