Difficulty:: Medium
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7],  
return its level order traversal as:  
| 12
 3
 4
 5
 
 | [[3],
 [9,20],
 [15,7]
 ]
 
 | 
Solution
Language: Java
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 
 | 
 
 
 
 
 
 
 
 class Solution {
 public List<List<Integer>> levelOrder(TreeNode root) {
 List<List<Integer>> result = new ArrayList<>();
 if (root == null) {
 return result;
 }
 Queue<TreeNode> q = new LinkedList<>();
 q.offer(root);
 while (!q.isEmpty()) {
 int size = q.size();
 List<Integer> level = new ArrayList<>();
 for (int i = 0; i < size; i++) {
 TreeNode tmp = q.poll();
 level.add(tmp.val);
 if (tmp.left != null) {
 q.offer(tmp.left);
 }
 if (tmp.right != null) {
 q.offer(tmp.right);
 }
 }
 result.add(level);
 }
 return result;
 }
 }
 
 |