145. Binary Tree Postorder Traversal
2017-09-05 14:37
337 查看
/* Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3 return [3,2,1]. Note: Recursive solution is trivial, could you do it iteratively? 使用迭代实现二叉树的后序遍历 */ /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<int> postorderTraversal(TreeNode* root) { vector<int> res; stack<TreeNode*> st; TreeNode* lastVisit=NULL; TreeNode* ptr=root; while(ptr || !st.empty()) { if(ptr) { st.push(ptr); ptr=ptr->left; } else { TreeNode* topNode=st.top(); if(topNode->right && topNode->right!=lastVisit) ptr=topNode->right; else { res.push_back(topNode->val); lastVisit=topNode; st.pop(); } } } return res; } vector<int> postorderTraversal2(TreeNode* root) { vector<int> res; stack<TreeNode*> st; if(root) st.push(root); while(!st.empty()) { TreeNode* topNode=st.top(); st.pop(); res.push_back(topNode->val); if(topNode->left) st.push(topNode->left); if(topNode->right) st.push(topNode->right); } reverse(res.begin(),res.end()); return res; } };
相关文章推荐
- Binary Tree Postorder Traversal leetcode145
- LeetCode No145 Binary Tree Postorder Traversal
- [LeetCode]题解(python):145-Binary Tree Postorder Traversal
- [LeetCode 145] Binary Tree Postorder Traversal
- LeetCode 145: Binary Tree Postorder Traversal
- leetCode 145:Binary Tree Postorder Traversal
- [leetcode 145] Binary Tree Postorder Traversal (待完善)
- LC145 Binary Tree Postorder Traversal
- LeetCode 145 Binary Tree Postorder Traversal
- LeetCode 145 : Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- leetcode[145]:Binary Tree Postorder Traversal
- 【LeetCode-面试算法经典-Java实现】【145-Binary Tree Postorder Traversal(二叉树非递归后序遍历)】
- 145. Binary Tree Postorder Traversal
- [leetcode-145]Binary Tree Postorder Traversal(c++)
- LeetCode 145 Binary Tree Postorder Traversal(二叉树的兴许遍历)+(二叉树、迭代)
- LeetCode:145_Binary Tree Postorder Traversal | 二叉树后序遍历 | Hard
- 145. Binary Tree Postorder Traversal
- [leedcode 145] Binary Tree Postorder Traversal
- 145:Binary Tree Postorder Traversal【树】【栈】