LeetCode_145(二叉树的后序遍历)

1.递归

public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        accessTree(root,res);
        return res;
    }
    public void accessTree(TreeNode root, List<Integer> res){
        if(root == null){
            return;
        }

        accessTree(root.left,res);
        accessTree(root.right,res);
        res.add(root.val);
    }

2.循环迭代

public List<Integer> postorderTraversal(TreeNode root) {

        List<Integer> res = new ArrayList<>();
        Deque<TreeNode> stack = new LinkedList<>();
        TreeNode prevAccess = null;
        while( root!=null || !stack.isEmpty() ){
            while (root !=null){
                stack.push(root);
                root = root.left;
            }
            root = stack.pop();

            if(root.right == null || root.right == prevAccess){

                res.add(root.val);
                prevAccess = root;
                root = null;

            }else{
                stack.push(root);
                root = root.right;
            }
        }
        return res;


    }
相关推荐
.普通人24 分钟前
洛谷--前缀统计c语言
c语言·开发语言·算法
muyesouu26 分钟前
判断一个单链表是否是回文结构 要求O(N)时间复杂度 O(1)空间复杂度
算法
绍兴贝贝40 分钟前
代码随想录算法训练营第五十天|图论基础|深度优先搜索理论基础|KM98.所有可达路径|广度优先搜索理论基础
数据结构·人工智能·python·算法·力扣
带多刺的玫瑰3 小时前
Leecode刷题C语言之切蛋糕的最小总开销②
java·数据结构·算法
robin_suli4 小时前
动态规划回文串问题系列一>回文子串
算法·动态规划
观测云4 小时前
日志聚类算法 Drain 的实践与改良
算法·聚类·日志
心软且酷丶4 小时前
leetcode:面试题 17.01. 不用加号的加法(python3解法)
python·算法·leetcode
hjyowl5 小时前
矩阵Matrix(POJ2155)
算法
Dream it possible!5 小时前
LeetCode 热题 100_将有序数组转换为二叉搜索树(42_108_简单_C++)(二叉树;递归)
c++·算法·leetcode·深度优先
MYT_flyflyfly5 小时前
计算机视觉之三维重建-摄像机标定
人工智能·算法·计算机视觉