對于二叉樹的層序遍歷,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)