145. Binary Tree Postorder Traversal
2017-01-07 14:07
344 查看
Given a binary tree, return the postorder traversal of its nodes' values.
For example:
Given binary tree
return
将后序遍历的结果逆序,就是先序遍历时先遍历右子树,再遍历左子树的结果。因此只需在先序遍历的结果上稍微改变一下代码。
public class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> list=new ArrayList<>();
Stack<TreeNode> stack=new Stack<>();
TreeNode p=root;
while(p!=null||!stack.isEmpty()){
while(p!=null){
list.add(0,p.val);
stack.push(p);
p=p.right;
}
if(!stack.isEmpty()){
p=stack.pop();
p=p.left;
}
}
return list;
}
}
For example:
Given binary tree
{1,#,2,3},
1 \ 2 / 3
return
[3,2,1].
将后序遍历的结果逆序,就是先序遍历时先遍历右子树,再遍历左子树的结果。因此只需在先序遍历的结果上稍微改变一下代码。
public class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> list=new ArrayList<>();
Stack<TreeNode> stack=new Stack<>();
TreeNode p=root;
while(p!=null||!stack.isEmpty()){
while(p!=null){
list.add(0,p.val);
stack.push(p);
p=p.right;
}
if(!stack.isEmpty()){
p=stack.pop();
p=p.left;
}
}
return list;
}
}
相关文章推荐
- leetcode 145 Binary Tree Postorder Traversal C++
- 【LeetCode-145】Binary Tree Postorder Traversal(C++)
- LeetCode 145:Binary Tree Postorder Traversal 解题与思考
- [leetcode 145] Binary Tree Postorder Traversal (待完善)
- 145. Binary Tree Postorder Traversal
- leetcode[145]:Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- LeetCode 145 Binary Tree Postorder Traversal (后序遍历二叉树)
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 【LeetCode-面试算法经典-Java实现】【145-Binary Tree Postorder Traversal(二叉树非递归后序遍历)】
- [145]Binary Tree Postorder Traversal
- 【leetcode】【145】Binary Tree Postorder Traversal
- 【LEETCODE】145-Binary Tree Postorder Traversal
- [leedcode 145] Binary Tree Postorder Traversal
- LeetCode 145 Binary Tree Postorder Traversal(二叉树的兴许遍历)+(二叉树、迭代)
- [leetcode-145]Binary Tree Postorder Traversal(c++)
- leetcode-145-Binary Tree Postorder Traversal
- 145 Binary Tree Postorder Traversal
- leetcode_c++:栈: Binary Tree Postorder Traversal(145)