# 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 not root: return []
queue = [root]
ans = []
while queue:
tmp_ans = []
for node in queue[:]:
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
tmp_ans.append(queue.pop(0).val)
ans.append(tmp_ans)
return ans