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

原文地址:https://www.cnblogs.com/ChevisZhang/p/12456629.html