LintCode Binary Tree Postorder Traversal 二叉树的后序遍历
来源:互联网 发布:python 计算hurst指数 编辑:程序博客网 时间:2024/06/13 16:12
给出一棵二叉树,返回其节点值的后序遍历。
Given a binary tree, return the postorder traversal of its nodes’ values.
样例
给出一棵二叉树 {1,#,2,3},
1
\
2
/
3
返回 [3,2,1]
解法:
使用两个栈,第二个栈记录第一个栈对应节点被访问的次数。只有当被访问到第三次时,要被输出且不必重新压栈。
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution { /** * @param root: The root of binary tree. * @return: Postorder in ArrayList which contains node values. */ public ArrayList<Integer> postorderTraversal(TreeNode root) { ArrayList<Integer> list = new ArrayList<Integer>();//结果集 Stack<TreeNode> stack = new Stack<TreeNode>(); Stack<Integer> counter = new Stack<Integer>();//记录节点被访问次数 TreeNode p = root; while(p != null || !stack.empty()) { while(p != null) { stack.push(p); counter.push(1); p = p.left; } if(!stack.empty()) { p = stack.pop(); int count = counter.pop(); count++; if(count == 3) { list.add(p.val); p = null; continue; } stack.push(p); counter.push(count); p = p.right; } } return list; }}
0 0
- LintCode Binary Tree Postorder Traversal 二叉树的后序遍历
- Binary Tree Postorder Traversal-二叉树的后序遍历
- Binary Tree Postorder Traversal 二叉树的后序遍历
- 二叉树的后序遍历 Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal 二叉树的后序遍历
- binary-tree-postorder-traversal(后序遍历二叉树)
- [LintCode] 中序遍历和后序遍历树构造二叉树 Construct Binary Tree from Inorder and Postorder Traversal
- lintcode construct-binary-tree-from-inorder-and-postorder-traversal 中序遍历和后序遍历树构造二叉树
- LeetCode Binary Tree Postorder Traversal(二叉树的后序遍历 非递归实现)
- Binary Tree Postorder Traversal 二叉树的后序遍历,使用堆栈,非递归
- LeetCode OJ 之 Binary Tree Postorder Traversal (二叉树的后序遍历)
- LeetCode 145: Binary Tree Postorder Traversal(二叉树的后序遍历,迭代法)
- Binary Tree Postorder Traversal 二叉树的后序遍历(迭代非递归版本)
- 68.Binary Tree Postorder Traversal-二叉树的后序遍历(容易题)
- [LeetCode]145. Binary Tree Postorder Traversal--二叉树的后序遍历
- 【LeetCode】Binary Tree Postorder Traversal 二叉树的后序遍历
- 【二叉树的后续遍历】Binary Tree Postorder Traversal
- Construct Binary Tree from Inorder and Postorder Traversal 中序和后序遍历二叉树
- 13.文件指针
- 《算法的乐趣》前言中面试算法。
- hdu 1533 Going Home(最小费用最大流)
- 2012年5月SAT香港真题解析
- 【前端JS】radio 可单选可点击取消选中
- LintCode Binary Tree Postorder Traversal 二叉树的后序遍历
- 14.条件编译
- 编写一个程序,将 a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt 文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔
- 程序员福利各大平台免费接口,非常适用
- Hadoop:为什么RAID-0不行?
- 关于arraylist类中indexof方法与lastindexof方法的使用
- POJ - 1185 炮兵阵地 (状态压缩)
- 计算之道 (置换的玩笑)搜索
- iOS 配置支付宝