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