145. 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].
思路:加另一个stack来对preorder取反向操作
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<Integer>();
if (root==null){
return list;
}
Stack<TreeNode> one = new Stack<TreeNode>();
Stack<TreeNode> two = new Stack<TreeNode>();
one.push(root);
while(!one.empty()){
TreeNode node = one.pop();
two.push(node);
if (node.left!=null){
one.push(node.left);
}
if (node.right!=null){
one.push(node.right);
}
}
while(!two.empty()){
TreeNode nodes = two.pop();
list.add(nodes.val);
}
return list;
}
}