您的位置:首页 > 其它

LeetCode-Binary Tree Level Order Traversal II

2015-03-07 23:08 309 查看
唯一和上一个题不同的就是要倒序输出层,从底层开始。只需要改一个小地方就是最后将每层list add到大list时候,用add(0,list),即add到第一位。

public class Solution {
public List<List<Integer>> levelOrderBottom(TreeNode root) {
Queue<TreeNode> que = new LinkedList<TreeNode>();
List<List<Integer>> ans = new ArrayList<List<Integer>>();
if(root == null)
return ans;
que.offer(root);
while( !que.isEmpty()){
int num = que.size();
List<Integer> list = new ArrayList<Integer>();
for( int i = 0; i < num; i++ ){
if(que.peek().left!= null)
que.offer(que.peek().left);
if(que.peek().right != null)
que.offer(que.peek().right);
list.add(que.poll().val);
}
ans.add(0,list);
}
return ans;

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: