class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
res = []
def dfs(level, root):
# 假设res是[ [1],[2,3] ], level是3,就再加入一个空list放到res中
if len(res) < level:
res.append([])
# 将当前节点的值加入到res中 level代表的层,假设level是3,节点值是99
# res是[ [1],[2,3] [4] ],加入后res就变为 [ [1],[2,3] [4,99] ]
res[level-1].append(root.val)
# 递归的处理左子树,右子树,同时将层数 level+1
if root.left:
dfs(level + 1, root.left)
if root.right:
dfs(level + 1, root.right)
# level 是 层数,root 是 当前节点
dfs(level=1, root=root)
return res