--- link: tags: difficulty --- # 102. Binary Tree Level Order Traversal ## Question 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] ] ``` ## Solution: Python ```python= from collections import deque # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def levelOrder(self, root): """ :type root: TreeNode :rtype: List[List[int]] """ num_nodes = 1 num_nodes_next_level = 0 queue = deque() queue.append(root) result = [] while queue: level = [] for i in range(num_nodes): node = queue.popleft() if node is not None: level.append(node.val) queue.append(node.left) queue.append(node.right) num_nodes_next_level += 2 num_nodes = num_nodes_next_level num_nodes_next_level = 0 if level: result.append(level) return result ``` ## Solution: Java ```java= ```