首页 > 其他分享 >145.binary-tree-postorder-traversal 二叉树的后序遍历

145.binary-tree-postorder-traversal 二叉树的后序遍历

时间:2022-08-18 10:56:29浏览次数:81  
标签:vector binary 145 cur res st 遍历 二叉树 root

对比前序遍历的"中左右",后序遍历是"左右中",颠倒一下就是"中右左",所以可以参照前序遍历的迭代法来写迭代遍历。

#include <algorithm>
#include <stack>
#include <vector>
using std::stack;
using std::vector;
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 *cur = st.top();
            st.pop();
            res.push_back(cur->val);
            if (cur->left != nullptr)
                st.push(cur->left);
            if (cur->right != nullptr)
                st.push(cur->right);
        }
        std::reverse(res.begin(), res.end());
        return res;
    }
};

递归法

class Solution {
public:
    vector<int> res;
    vector<int> postorderTraversal(TreeNode* root) {
        if (root == nullptr)
            return res;
        postorderTraversal(root->left);
        postorderTraversal(root->right);
        res.push_back(root->val);
        return res;
    }
};

标签:vector,binary,145,cur,res,st,遍历,二叉树,root
From: https://www.cnblogs.com/zwyyy456/p/16597926.html

相关文章

  • 144.binary-tree-preorder-traversal 二叉树的前序遍历
    前序遍历即中左右,前中后序遍历区别就在于中节点是在前、中还是后。利用栈实现二叉树的迭代遍历:#include<stack>#include<vector>usingstd::stack;usingstd::vecto......
  • [CF1450F] The Struggling Contestant 题解
    \(\mathtt{Link}\)CF1450FTheStrugglingContestant-洛谷|计算机科学教育新生态(luogu.com.cn)\(\mathtt{Description}\)\(T\)组数据。一共有\(n\)道题,题号......
  • CF145C Lucky Subsequence
    题目链接:洛谷CodeforcesProblem这题目翻译真的神了,好多歧义,看不懂,给一个本人翻译:给你一个长度为\(n\)的序列\(a\),定义幸运数为仅含有\(4\)或\(7\)的数,你需要取......
  • 剑指 Offer 07. 重建二叉树
    剑指Offer07.重建二叉树题目大意输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。......
  • 2022-8-17 剑指offer-二叉树-递归
    剑指OfferII054.所有大于等于节点的值之和难度中等35收藏分享切换为英文接收动态反馈给定一个二叉搜索树,请将它的每个节点的值替换成树中大于或者等于该节点值......
  • binary search tree(bst)
    什么是bst?bst树,通常称为二叉搜索树,又叫二叉排序树,bst是一种特殊的二叉树结构,也是一种常见的数据结构类型,其中,bst很明显的特性是根节点大于左子树的节点小于右子树的节点,......
  • 2022-8-16 剑指offer-二叉树
    剑指OfferII053.二叉搜索树中的中序后继难度中等57收藏分享切换为英文接收动态反馈给定一棵二叉搜索树和其中的一个节点 p ,找到该节点在树中的中序后继。如果......
  • Navicat 1451 Cannot delete or update aparent row: a foreign key constraint fails
    如下图,全选后删除不了  原因:外键约束导致的. 解决:先将外键所在行删除,ctrl+s,再全选中删除. ......
  • [AcWing 145] 超市
    贪心+小根堆点击查看代码#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<int,int>PII;constintN=1e6+10;intn;......
  • NC16681 [NOIP2003]加分二叉树
    题目链接题目题目描述​设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第j个节点的分数为di,t......