DEV Community

Kaitian Xie
Kaitian Xie

Posted on • Edited on

2 2

LeetCode in Ruby: 107. Binary Tree Level Order Traversal II

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)

Collapse
 
enowmbi profile image
Enow B. Mbi

You deserve an oscar for clean code. thanks.

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up