102. 二叉树的层次遍历(leetcode)
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
本题像抄了个作业,索然无味,改天再多刷几次,代码借鉴本题官方解答。
思考:
代码:
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
res = []
def helper(node,level):
if not node:
return
if level == len(res):
res.append([])
res[level].append(node.val)
if node.left:
helper(node.left,level+1)
if node.right:
helper(node.right,level+1)
helper(root,0)
return res
DFS:
先序遍历:
res.append(node.val)
helper(node.left)
helper(node.right)
中序遍历:
helper(node.left)
res.append(node.val)
helper(node.right)
后序遍历:
helper(node.left)
helper(node.right)
res.append(node.val)
BFS:
在递归中需要借助变量level