[LeetCode] 145、二叉树的后序遍历
程序员文章站
2022-05-20 13:46:13
...
题目描述
给定一个二叉树,返回它的 后序 遍历。
参考代码
关于这个,看我的博客:二叉树三种遍历方式的六种实现方法。这是个Hard题,但是用了“小技巧”后,就不难了。
/**
* 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;
if(root == nullptr)
return res;
stack<TreeNode*> mStack;
mStack.push(root);
while(!mStack.empty()){
TreeNode* temp = mStack.top();
mStack.pop();
res.push_back(temp->val);
if(temp->left)
mStack.push(temp->left);
if(temp->right)
mStack.push(temp->right);
}
reverse(res.begin(), res.end());
return res;
}
};