欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode 145 二叉树的后序遍历

程序员文章站 2022-05-20 13:46:31
...

思路:二叉树的前序遍历 + 逆排列

在二叉树的前序排列中国, 节点顺序 root ——left——right(由于先进先出的栈,实际进栈,先是right,后是left.)

后序遍历,left——right——root(相当于root ——right——left的逆序),所以在原有的基础上稍加改变,并最后进行List的逆

class Solution {
    private ArrayList<Integer> ans = new ArrayList<>();
    private Stack<TreeNode> st = new Stack<>();
    public List<Integer> postorderTraversal(TreeNode root) {
        if(root == null) return ans;
        st.push(root);
        while(!st.isEmpty())
        {
            TreeNode node = st.pop();
            ans.add(node.val);
            if(node.left != null) st.push(node.left);
            if(node.right != null) st.push(node.right);
            
        }
        Collections.reverse(ans);
        return ans;
    }
}