题目:
给你一棵二叉树的根节点 root
,返回其节点值的 后序遍历 。
思路:
和前序遍历差不多
后序遍历是:左右中 ,逆序之后是:中右左
所以在前序遍历中 把左右节点操作调换 得到中右左
并且把最后的结果用reverse逆一下
最后把结果逆一下
代码:
class Solution {
public:
vector<int> postorderTraversal(TreeNode* root) {
vector<int> res;
stack<TreeNode*> st;
if(root == nullptr) return res;
st.push(root);
while(!st.empty())
{
TreeNode* node = st.top();
st.pop();
res.push_back(node -> val);
if(node -> left) st.push(node -> left);
if(node -> right) st.push(node -> right);
}
reverse(res.begin(),res.end());
return res;
}
};