首页 > 代码库 > LeetCode 二叉树反序遍历(binary-tree-postorder-traversal)

LeetCode 二叉树反序遍历(binary-tree-postorder-traversal)

 

Given a binary tree, return the postorder traversal of its nodes‘ values.

For example:
Given binary tree{1,#,2,3},

   1         2    /   3

 

return[3,2,1].

Note: Recursive solution is trivial, could you do it iteratively?

 

import java.util.*;public class Solution {    public ArrayList<Integer> postorderTraversal(TreeNode root) {        ArrayList<Integer> list = new ArrayList<Integer>();        if(root==null)            return list;        Stack<TreeNode> stack = new Stack<TreeNode>();        Stack<TreeNode> stack2 = new Stack<TreeNode>();        stack.add(root);        while(!stack.isEmpty()){            TreeNode r = stack.pop();            if(r.left!=null)                stack.add(r.left);            if(r.right!=null)                stack.add(r.right);            stack2.add(r);        }        while(!stack2.isEmpty()){            list.add(stack2.pop().val);        }        //LRD(list,root);递归        return list;    }    public void LRD(ArrayList<Integer> list,TreeNode root){        if(root==null)            return;        LRD(list,root.left);        LRD(list,root.right);        list.add(root.val);    }}

 

LeetCode 二叉树反序遍历(binary-tree-postorder-traversal)