您的位置:首页 > 其它

Binary Tree Level Order Traversal II

2014-05-06 18:57 246 查看
/**
* Definition for binary tree
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) {
ArrayList<ArrayList<Integer>> resR = new ArrayList<ArrayList<Integer>>();
ArrayList<TreeNode> treeNodeTmp = new ArrayList<TreeNode>();
if(root == null){
return resR;
}else{
treeNodeTmp.add(root);
ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
while(treeNodeTmp.size() != 0){
ArrayList<Integer> resTmp = new ArrayList<Integer>();
ArrayList<TreeNode> treeNodeTmpWhile = new ArrayList<TreeNode>();
for(int i = 0 ; i < treeNodeTmp.size() ; i++){
TreeNode tmp = treeNodeTmp.get(i);
resTmp.add(tmp.val);
//System.out.print(tmp.val);
if(tmp.left != null){
treeNodeTmpWhile.add(tmp.left);
}
if(tmp.right != null){
treeNodeTmpWhile.add(tmp.right);
}
}
res.add(resTmp);
treeNodeTmp = treeNodeTmpWhile;
}
for(int i = res.size() - 1 ; i>= 0 ;i--){
resR.add(res.get(i));
}
}
return resR;
}
}
看过题解,参考队列方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: