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?

Show Tags
Have you met this question in a real interview? Yes  No
Discuss
LeetCode: Binary Tree Postorder Traversal  解题报告

SOLUTION 1:

递归解法

 1 public List<Integer> postorderTraversal1(TreeNode root) {
 2         List<Integer> ret = new ArrayList<Integer>();
 3         dfs(root, ret);
 4         return ret;
 5     }
 6     
 7     // Solution 1: rec
 8     public void dfs(TreeNode root, List<Integer> ret) {
 9         if (root == null) {
10             return;
11         }
12         
13         dfs(root.left, ret);
14         dfs(root.right, ret);
15         ret.add(root.val);
16     }
View Code

相关文章: