首页 > 其他分享 >leetcode145-二叉树的后序遍历

leetcode145-二叉树的后序遍历

时间:2022-10-28 19:59:52浏览次数:67  
标签:遍历 leetcode145 return Tracking 二叉树 push TreeNode root result

145. 二叉树的后序遍历

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

递归法没什么好说的,有手就行。难就难在迭代法,想了很久。

这是别人的代码。等别的时候再认真看看吧,旁边有两个sb,一个浑身散发着怪味,一个呼吸声贼大声。两个人是一起的。真的无法思考

class Solution {
public:
    vector<int> postorderTraversal(TreeNode* root) {
        vector<int> result;
        if(root==NULL) return result;
        stack<TreeNode*> S;
        S.push(root);
        while(!S.empty())
        {
            TreeNode *p=S.top();
            S.pop();
            if(p!=NULL)
            {
                S.push(p);
                S.push(NULL);
                if(p->right) S.push(p->right);
                if(p->left) S.push(p->left);
            }
            else
            {
                p=S.top();
                S.pop();
                result.push_back(p->val);
            }
        }
        return result;
    }
};

 

标签:遍历,leetcode145,return,Tracking,二叉树,push,TreeNode,root,result
From: https://www.cnblogs.com/uacs2024/p/16837287.html

相关文章

  • Map的遍历方式
    (1)方式一:键找值步骤:1.创建Map集合的对象;2.添加元素;3.通过键找值;3.1获取所有的键,把这些键放到一个单列集合当中Set<键的类型>keys=map.keySet();3.2遍历单列集合,得......
  • 二叉树的其他重要操作
    二叉树的其他重要操作1,建树代码:1//建树2voidpre(tree&bt)//先序次序输入3{4charch;5ch=getchar();//单链表存储结构,bt为指向根结点......
  • 图的遍历
    从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历。(1)深度优先遍历深度优先遍历类似于数的先序遍历,是树的先序遍历的推广。从......
  • 二叉树路径问题: 合集--所有路径-路径总和-路径总和 II-路径总和 III-最大路径和
    文章目录​​[257.二叉树的所有路径](https://leetcode-cn.com/problems/binary-tree-paths/)​​​​[112.路径总和](https://leetcode-cn.com/problems/path-sum/)​​......
  • 剑指offer - 面试题6:重建二叉树
    packageChapter2;/***面试题6:重建二叉树*输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。*假设输入的前序遍历和中序遍历的结果中都不含重复的数字。*......
  • 验证二叉搜索树——采用中序遍历解决
    在做98. 验证二叉搜索树时,解决思路是中序遍历,判断当前节点是否大于中序遍历的前一个节点,如果大于,说明满足BST,继续遍历;否则直接返回false。下面是中序遍历的非递归实现,......
  • JAVA-二维数组遍历
    改进代码改进代码最终遍历代码packagecom.itheima;publicclassshuzu06{publicstaticvoidmain(String[]args){int[][]arr={{1,2,3},{4,5,......
  • 静态二叉树建立
    #defineSZ(x)(int)(x.size())constintinf=0x3f3f3f3f;strings="ab##C##";structNode{intval;intl,r;Node(){val=inf;}......
  • 力扣(leetcode) 104.二叉树的最大深度 (详细步骤分解递归)
    题目在这:​​https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/​​思路分析:找二叉树的最大深度,用递归比较好理解也比较好想。遍历左子树,遍历右子树。回退......
  • 力扣(leetcode) 101. 对称二叉树 (对称的性质)(传统递归法)
    题目在这:​​https://leetcode-cn.com/problems/symmetric-tree/​​法一:思路分析:题目没什么难的。对称二叉树,也可以理解为镜像二叉树。第一种方法比较容易理解,对称二叉......