leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0145.cpp (760B)
0 class Solution {
1 public:
2 vector<int> postorderTraversal(TreeNode *root) {
3 if (!root) return {};
5 vector<int> res;
6 unordered_set<TreeNode *> s;
7 stack<TreeNode *> st;
9 while (root) {
10 st.push(root);
11 root = root->left;
12 }
14 while (!st.empty()) {
15 TreeNode *root = st.top();
16 st.pop();
17 if (!s.count(root)) {
18 s.insert(root);
19 st.push(root);
20 root = root->right;
21 while (root) {
22 st.push(root);
23 root = root->left;
24 }
25 } else {
26 res.push_back(root->val);
27 }
28 }
30 return res;
31 }
32 };