107. Binary Tree Level Order Traversal II
2016-03-18 21:06
393 查看
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
return its bottom-up level order traversal as:
confused what
read more on how binary tree is serialized on OJ.
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] ]
confused what
"{1,#,2,3}"means? >
read more on how binary tree is serialized on OJ.
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) { List<TreeNode> tree1 =new ArrayList <TreeNode> (); List<List<Integer>> ret = new ArrayList <List<Integer>> (); List<List<Integer>> ret2 = new ArrayList <List<Integer>> (); if(root==null)return ret; tree1.add(root); while(tree1.size()>0){ List<TreeNode> tree2 =new ArrayList <TreeNode> (); List <Integer> a = new ArrayList <Integer> (); for(int i = 0;i<tree1.size();i++){ a.add(tree1.get(i).val); if(tree1.get(i).left!=null)tree2.add(tree1.get(i).left); if(tree1.get(i).right!=null)tree2.add(tree1.get(i).right); } tree1=tree2; ret2.add(a); } for(int i=ret2.size()-1;i>=0;i--){ ret.add(ret2.get(i)); } return ret; } }
相关文章推荐
- nyoj--301 递推求值(矩阵快速幂)
- Pairs Forming LCM 素数筛和素因子分解
- 0-1背包问题
- 最大子段和
- [Angular 2] Using events and refs
- 如何在jsp页面中利用el表达式的<p>${error }</p>取值?
- 198. House Robber
- 指针与引用的区别
- RAID详解
- 最长公共子序列
- 101. Symmetric Tree
- 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut
- 110. Balanced Binary Tree
- 在C++中实现委托(Delegate)
- 106. Construct Binary Tree from Inorder and Postorder Traversal | Java最短代码实现
- strrev()函数会修改参数原本的值
- A*搜寻算法(A星算法)
- 【codevs 1080~1082】线段树练习重做
- 极路由的“802.1x手机号登陆wifi”插件,电脑连接wifi方法
- python-Day8