zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Storybook 最新教程
    Monorepo All In One
    zsh & git alias
    vue-cli emit webpack config
    iflab隔壁ios组新生面试题
    [转]sprintf
    python版归并排序
    关于linux下GCC生成共享库(动态链接库)的探究
    ubuntu不小心删除了libc-bin的恢复办法
    python实现栈
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12456629.html
Copyright © 2011-2022 走看看