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]
]
ไปฃ็
Approach 1: BFS
publicclassSolution {publicList<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> result =newArrayList<List<Integer>>();if (root ==null) return result;Queue<TreeNode> queque =newLinkedList<TreeNode>();queue.offer(root);while (!queue.isEmpty()) {ArrayList<Integer> level =newArrayList<Integer>();int size =queue.size();for (int i =0; i < size; i++) {TreeNode head =queue.poll();level.add(head.val);if (head.left!=null) {queue.offer(head.left); }if (head.right!=null) {queue.offer(head.right); } }result.add(level); }return result; }}