Binary Tree Level Order Traversal
Tree BFS
Problem
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
Thought Process

Solution
from collections import deque
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if root is None:
return []
result = []
queue = deque()
queue.append(root)
while queue:
currentLevel = []
levelSize = len(queue)
for _ in range(levelSize):
currentNode = queue.popleft()
currentLevel.append(currentNode.val)
if currentNode.left:
queue.append(currentNode.left)
if currentNode.right:
queue.append(currentNode.right)
result.append(currentLevel)
return result
#Time: O(n) where n is the total number of nodes in tree
#Space: O(n) because of return list and queue
Last updated
Was this helpful?