Try   HackMD

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

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