Medium
Given the root
of a binary tree, return the level order traversal of its nodes’ values. (i.e., from left to right, level by level).
Example 1:
Input: root = [3,9,20,null,null,15,7]
Output: [[3],[9,20],[15,7]]
Example 2:
Input: root = [1]
Output: [[1]]
Example 3:
Input: root = []
Output: []
Constraints:
[0, 2000]
.-1000 <= Node.val <= 1000
# Definition for a binary tree node.
# class TreeNode
# attr_accessor :val, :left, :right
# def initialize(val = 0, left = nil, right = nil)
# @val = val
# @left = left
# @right = right
# end
# end
# @param {TreeNode} root
# @return {Integer[][]}
def level_order(root)
result = []
return result if root.nil?
queue = [root, nil]
level = []
until queue.empty?
current = queue.shift
if current.nil?
result << level.dup
level.clear
queue.push(nil) unless queue.empty?
else
level << current.val
queue.push(current.left) if current.left
queue.push(current.right) if current.right
end
end
result
end