Binary Tree Level Order Traversal

 1 public class Solution {
 2     public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) {
 3         ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
 4         LinkedList<TreeNode> cur = new LinkedList<TreeNode>();
 5         if(root==null) return res;
 6         cur.offer(root);
 7         while(!cur.isEmpty()){
 8             LinkedList<TreeNode> next = new LinkedList<TreeNode>();
 9             ArrayList<Integer> sol = new ArrayList<Integer>();
10             for(TreeNode n :cur){
11                 sol.add(n.val);
12                 if(n.left!=null) next.offer(n.left);
13                 if(n.right!=null) next.offer(n.right);
14             }
15             res.add(sol);
16             cur = next;
17         }
18         return res;
19     }
20 }
View Code

 

posted @ 2014-02-06 14:56  krunning  阅读(99)  评论(0编辑  收藏  举报