其他分享
首页 > 其他分享> > LeetCode 0145 Binary Tree Postorder Traversal

LeetCode 0145 Binary Tree Postorder Traversal

作者:互联网

原题传送门

1. 题目描述

2. Solution 1

1、思路分析
后序遍历,左右根,递归实现。

2、代码实现

package Q0199.Q0145BinaryTreePostorderTraversal;

import DataStructure.TreeNode;

import java.util.ArrayList;
import java.util.List;

public class Solution {
    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> result = new ArrayList<>();
        postOrder(result, root);
        return result;
    }

    private void postOrder(List<Integer> result, TreeNode root) {
        if (root != null) {
            postOrder(result, root.left);
            postOrder(result, root.right);
            result.add(root.val);
        }
    }
}

3、复杂度分析
时间复杂度: O(n)
空间复杂度: O(n)

3. Solution 2

1、思路分析
迭代实现。

2、代码实现

package Q0199.Q0145BinaryTreePostorderTraversal;

import DataStructure.TreeNode;

import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;

public class Solution2 {
    /*
       迭代
       时间复杂度: O(n),其中n是二叉树的结点数。
       空间复杂度: O(n),为迭代过程中显式栈的开销,平均情况下为O(log n),最坏情况下树呈现链状为O(n).
     */
    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        if (root == null) return res;

        Deque<TreeNode> stack = new LinkedList<>();
        TreeNode prev = null;
        while (root != null || !stack.isEmpty()) {
            while (root != null) {
                stack.push(root);
                root = root.left;
            }
            root = stack.pop();
            if (root.right == null || root.right == prev) {
                res.add(root.val);
                prev = root;
                root = null;
            } else {
                stack.push(root);
                root = root.right;
            }
        }
        return res;
    }
}

3、复杂度分析
时间复杂度: O(n),其中n是二叉树的结点数。
空间复杂度: O(n),为迭代过程中显式栈的开销,平均情况下为O(log n),最坏情况下树呈现链状为O(n).

标签:Binary,List,复杂度,Tree,Traversal,result,import,null,root
来源: https://www.cnblogs.com/junstat/p/16299916.html