首页 > 代码库 > [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?

 

Solution 1: 非递归

 

 

Solution 2: 递归

 1 /** 2  * Definition for binary tree 3  * public class TreeNode { 4  *     int val; 5  *     TreeNode left; 6  *     TreeNode right; 7  *     TreeNode(int x) { val = x; } 8  * } 9  */10 public class Solution {11     public List<Integer> postorderTraversal(TreeNode root) {12         List<Integer> result=new ArrayList<Integer>();13         myPostorderTraversal(root,result);14         return result;15     }16 17     private void myPostorderTraversal(TreeNode root, List<Integer> result) {18         // TODO Auto-generated method stub19         if(root!=null){20             myPostorderTraversal(root.left, result);21             myPostorderTraversal(root.right, result);22             result.add(root.val);23         }24     }25 }

 

[Leetcode] Binary Tree Postorder Traversal