对于二叉树的层序遍历,BFS方法是更为常用的思路。但我觉得用DFS递归的方法做也很好,下面贴出代码:
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
self.levelList = []
if not root:
return []
self.dfs(root, 0)
return self.levelList
def dfs(self, root, level):
if not root:
return
if len(self.levelList) < level + 1:
self.levelList.append([])
self.levelList[level].append(root.val)
self.dfs(root.left, level+1)
self.dfs(root.right, level+1)