Iterative
def level_order(root)
result = []
return result if root.nil?
queue = []
queue << root
until queue.empty?
level_size = queue.length
level = []
level_size.times do
node = queue.shift
level << node.val
queue << node.left unless node.left.nil?
queue << node.right unless node.right.nil?
end
result << level
end
result.reverse!
end
This is very similar to the iterative solution for problem 102, except that we reverse result
at the end. For detailed explanation, please read:
Top comments (1)
You deserve an oscar for clean code. thanks.