Binary Tree Postorder Traversal ---- LeetCode
来源:互联网 发布:linux 恢复根目录 编辑:程序博客网 时间:2024/06/06 14:24
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?
解题思路:使用栈非递归完成二叉树的中序遍历,记录每次出栈的节点pre,当前栈顶的节点node。
若pre为node的孩子或者为null,则node出栈;若pre不为空且不是node的孩子,node有孩子,则node孩子入栈。
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> result=new ArrayList<Integer>();
Stack<TreeNode> stack=new Stack<TreeNode>();
TreeNode node=root;
TreeNode pre=null;
if(root==null){
return result;
}
stack.push(node);
while(!stack.isEmpty()){
node=stack.peek();
if((pre==null||(pre!=node.left&&pre!=node.right))&&(node.right!=null||node.left!=null)){
if(node.right!=null){
stack.push(node.right);
}
if(node.left!=null){
stack.push(node.left);
}
}else{
result.add(node.val);
stack.pop();
pre=node;
}
}
return result;
}
}
- LeetCode Binary Tree Postorder Traversal
- LeetCode:Binary Tree Postorder Traversal
- Leetcode: Binary Tree Postorder Traversal
- Leetcode: Binary Tree Postorder Traversal
- LeetCode:Binary Tree Postorder Traversal
- Leetcode Binary Tree Postorder Traversal
- [LeetCode]Binary Tree Postorder Traversal
- [LeetCode] Binary Tree Postorder Traversal
- leetcode Binary Tree Postorder Traversal
- 【LeetCode】Binary Tree Postorder Traversal
- LeetCode | Binary Tree Postorder Traversal
- Leetcode: Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal - LeetCode
- LeetCode - Binary Tree Postorder Traversal
- [LeetCode]Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal -- LeetCode
- [LeetCode]Binary Tree Postorder Traversal
- 【LeetCode】Binary Tree Postorder Traversal
- 三种常见中文内码的转换方法
- 一切成功源于积累——20150110 美国非农5分钟k线直至收盘 各货币对表现
- 积分系统方案-关于一般积分系统的整理
- SQL/Oracle 将一列多行合并为一行
- N阶魔方阵
- Binary Tree Postorder Traversal ---- LeetCode
- NET 单元测试扫盲
- linux下一款好用的命令行浏览器
- 1501100920-蓝桥杯-算法训练 删除数组零元素
- Linux内核proc文件系统使用示例
- C#中的委托和事件
- C++中提供的类型转换方式
- 再回到商丘,感慨这两三年的经历
- 构建仪表、图表控件的绘制框架