2026-08-25 19:14:07 -06:00

1.1 KiB

layout, title, last_solved, category, leetcode_url, status
layout title last_solved category leetcode_url status
page BFS 2020-08-08 bfs Solved

Time complexity is O(N) Space complexity is O(W) where W is the max number of nodes on any level.

{% highlight python %}

class TreeNode:

def __init__(self, val):

    self.val = val
    self.left = None
    self.right = None

def levelOrder(root):

queue = []
queue.append( root )
levels = []

while queue:

    level_size = len(queue)
    level = []

    while level_size:

        node = queue.pop(0)

        if node:
            level.append( node.val )

            if node.left:
                queue.append( node.left )
            if node.right:
                queue.append( node.right )

        level_size -= 1
    
    if level:
        levels.append( level )

print levels

root = TreeNode(0) root.left = TreeNode(1) root.right = TreeNode(2) root.left.left = TreeNode(3) root.left.right = TreeNode(4)

root.right.left = TreeNode(5)

root.right.right = TreeNode(6) root.right.right.right = TreeNode(7)

levelOrder(root)

{% endhighlight %}