从底向上层次遍历二叉树

题目原型:

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

For example:
Given binary tree {3,9,20,#,#,15,7},

3 / \ 9 20 / \ 15 7

return its bottom-up level order traversal as:

[ [15,7] [9,20], [3], ]

基本思路:

由于是从底向上,所以用到了栈。

public ArrayList> levelOrderBottom(TreeNode root) { Stack> stack = new Stack>(); ArrayList> list = new ArrayList>(); ArrayList nodeSet = new ArrayList(); ArrayList tmp ; ArrayList numSet ; if(root!=null) { nodeSet.add(root); while(nodeSet.size()>0) { tmp = new ArrayList(); numSet = new ArrayList(); //添加到stack中 for(TreeNode tn : nodeSet) numSet.add(tn.val); //添加到stack中 stack.push(numSet); //求下一层的节点 for(TreeNode it : nodeSet) { if(it.left!=null) tmp.add(it.left); if(it.right!=null) tmp.add(it.right); } nodeSet = tmp; } //添加到list中 while(stack.size()>0) { ArrayList rs = stack.pop(); list.add(rs); } } return list; }

点击复制链接 与好友分享!回本站首页
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力
上一篇:Java基本数据类型的长度范围
下一篇:Java数据类型转换
相关文章
图文推荐
从底向上层次遍历二叉树
适配器模式
从底向上层次遍历二叉树
Handler的介绍和使用
从底向上层次遍历二叉树
struts2上传文件
从底向上层次遍历二叉树
通过JFreeChart的饼状

分类:默认分类 时间:2012-01-13 人气:3
本文关键词:
分享到:

相关文章

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.036 (s). 9 q(s)