关于二叉树后续遍历算法的一点思考
2014-04-15 18:19
429 查看
二叉树的三种遍历方式,最常用且简单的就是递归来实现的。
下面分享在LeetCode做的二叉树后序遍历算法。
下面分享在LeetCode做的二叉树后序遍历算法。
//二叉树的后序遍历算法,java语言实现 public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } public ArrayList<Integer> postorderTraversal(TreeNode root) { ArrayList<Integer> res = new ArrayList<Integer>(); helper(root, res);//摆脱桎梏(gu)此处可以把ArrayList也作为参数传过去 return res; } private void helper(TreeNode root, ArrayList<Integer> res) { if(root == null) return;//此句话保证{},即空二叉树情况,能够顺利运行! helper(root.left,res); helper(root.right,res); res.add(root.val); } public class Solution { public ArrayList<Integer> postorderTraversal(TreeNode root) { ArrayList<Integer> res = new ArrayList<Integer>(); helper(root, res); return res; } private void helper(TreeNode root, ArrayList<Integer> res) { if(root == null) return; //这一种可能更容易理解一点,就是一直遍历左子树,遇到null //试着遍历同级的右子树,然后继续递归 TreeNode leftTree = root.left; if (leftTree!= null) { helper(leftTree,res); } TreeNode rightTree = root.right; if (rightTree!= null) { helper(rightTree,res); } res.add(root.val);//记住此处添加root的成员变量val } }
相关文章推荐
- 关于算法的一点思考。。。
- 关于容器遍历效率的一点思考
- 关于二叉树的非递归遍历的算法疑惑
- 从二叉树的前序和中序得到后续遍历算法
- 二叉树后续遍历算法
- 算法--根据二叉树前序和中序遍历序列,求后续遍历序列
- 常用数序结构与算法之后续非递归遍历二叉树
- 【Java】关于二叉树的广度优先遍历及完全二叉树判定算法
- 【二叉树】关于二叉树的后续遍历遍历以及栈
- 二叉树先序遍历、中序遍历、后续遍历算法
- 关于先序中序后序遍历二叉树的一点总结
- 关于二叉树的多种遍历算法
- 二叉树的先序遍历、中序遍历、后续遍历和二叉树还原
- 关于棋牌类服务端架构的一点思考
- 二叉树的遍历算法(递归与非递归)
- 剑指offer 二叉树的后续遍历序列
- 关于masm中PTR伪指令的一点思考
- 关于浮点数问题的一点思考
- 递归和非递归实现二叉树的后续遍历
- 关于malloc和free的一点思考