# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if root is None:
return []
res, queue = [], collections.deque()
queue.append(root)
while queue:
nums = len(queue)
layer = []
for _ in range(nums):
node = queue.popleft()
layer.append(node.val)
if node.left is not None:
queue.append(node.left)
if node.right is not None:
queue.append(node.right)
res.append(layer)
return res