您的位置:首页 > 编程语言 > Go语言

Binary Tree Postorder Traversal

2014-01-27 08:05 555 查看
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?

public class BinaryTreePostorderTraversal {
public ArrayList<Integer> postorderTraversal(TreeNode<Integer> root) {
if(root == null){
return new ArrayList<Integer>();
}
ArrayList<Integer> left = postorderTraversal(root.left);
ArrayList<Integer> right = postorderTraversal(root.right);
left.addAll(right);
left.add(root.data);
return left;
}
}

或者:

public static ArrayList<Integer> postorderTraversal(TreeNode root){
ArrayList<Integer> list = new ArrayList<>();
if(root == null) return list;
postorderTraversalHelper(root,list);
return list;
}
private static void postorderTraversalHelper(TreeNode root, ArrayList<Integer> list){
if(root == null) return;
postorderTraversalHelper(root.left,list);
postorderTraversalHelper(root.right,list);
list.add(root.val);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode algorithm