Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). Tags: Tree
Try It!
Discussion
Video
Solution
import collections
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
queue = collections.deque()
queue.appendleft((root, 0))
res = []
while queue:
top, level = queue.pop()
if len(res) == level:
res.append([])
res[level].append(top.val)
if top.left:
queue.appendleft((top.left, level + 1))
if top.right:
queue.appendleft((top.right, level + 1))
return res