class Solution:
    def levelOrder(self , root: TreeNode) -> List[List[int]]:
        # write code here
        if not root:
            return []

        queue = [(root, 0)] #用来记录每层的值和层数的值
        levelMap = {}
        
        while queue:
            node, level = queue.pop(0)
            #对node进行判断,看是否有左右子树
            if node.left:
                queue.append((node.left, level+1))
            if node.right:
                queue.append((node.right, level+1))
            #对level进行判断,将值加入字典中
            if level in levelMap:
                levelMap[level].append(node.val)
            else:
                levelMap[level] = [node.val]
        res = []
        for key, val in levelMap.items():
            res.append(val)
        return res