https://leetcode.com/problems/binary-tree-level-order-traversal/description/
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],
3
/
9 20
/
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
Corner Cases
What if the binary tree is null? Return an empty list of list in this case:
return new ArrayList<List<Integer>>();
1 class Solution {
2 public List<List<Integer>> levelOrder(TreeNode root) {
3 if (root == null) {
4 return new ArrayList<List<Integer>>();
5 }
6 List<List<Integer>> res = new ArrayList<List<Integer>>();
7 Queue<TreeNode> queue = new LinkedList<TreeNode>() ;
8 queue.offer(root);
9 while(!queue.isEmpty()){
10 int size = queue.size() ;
11 List<Integer> subRes = new ArrayList<>();
12 for (int i =0 ; i< size ; i++ ) {
13 TreeNode node = queue.poll();
14 subRes.add(node.val);
15 if (node.left != null) {
16 queue.offer(node.left);
17 }
18 if (node.right != null) {
19 queue.offer(node.right);
20 }
21 }
22 res.add(subRes);
23 }
24 return res ;
25 }
26 }