Solution 1
Python
# 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: Optional[TreeNode]) -> List[List[int]]:
levels = []
queue = [root]
while queue:
level = []
newQueue = []
for node in queue:
if node != None:
level.append(node.val)
newQueue.append(node.left)
newQueue.append(node.right)
if level:
levels.append(level)
queue = newQueue
return levels