LeetCode199题:二叉树的右视图(python3)

在这里插入图片描述
代码思路:深度优先搜索,每次总访问右子树,value_depth用dict存放,深度为索引,存放节点的值,stack从根节点[(root, 0)]开始,添加node和depth

class Solution:
    def rightSideView(self, root: Optional[TreeNode]) -> List[int]:
        rightmost_value_at_depth = dict() # 深度为索引,存放节点的值
        max_depth = -1

        stack = [(root, 0)]
        while stack:
            node, depth = stack.pop()

            if node is not None:
                # 维护二叉树的最大深度
                max_depth = max(max_depth, depth)

                # 如果不存在对应深度的节点我们才插入
                rightmost_value_at_depth.setdefault(depth, node.val)

                stack.append((node.left, depth + 1))
                stack.append((node.right, depth + 1))

        return [rightmost_value_at_depth[depth] for depth in range(max_depth + 1)]

相关推荐

  1. Leetcode 199视图

    2024-03-18 21:56:01       30 阅读
  2. LeetCode199.视图

    2024-03-18 21:56:01       25 阅读
  3. 199_视图

    2024-03-18 21:56:01       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-18 21:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-18 21:56:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-18 21:56:01       82 阅读
  4. Python语言-面向对象

    2024-03-18 21:56:01       91 阅读

热门阅读

  1. kafka什么情况下会认为发送失败进而去重试

    2024-03-18 21:56:01       46 阅读
  2. 【力扣】75.颜色分类

    2024-03-18 21:56:01       43 阅读
  3. 机械产品CE-MD认证测试项目介绍

    2024-03-18 21:56:01       44 阅读
  4. 2733: 【搜索】【广度优先】 马遍历棋盘

    2024-03-18 21:56:01       43 阅读
  5. springboot源码的类阅读顺序

    2024-03-18 21:56:01       45 阅读
  6. vue3+TS中子组件怎么向父组件传值

    2024-03-18 21:56:01       45 阅读
  7. Vue3 使用Pinia 存入与取出数据

    2024-03-18 21:56:01       39 阅读
  8. 算法笔记p93_进制转换

    2024-03-18 21:56:01       40 阅读
  9. linux进程 crash之后 ulimit -c unlimited

    2024-03-18 21:56:01       43 阅读
  10. 人工智能主要有哪些领域?

    2024-03-18 21:56:01       37 阅读
  11. C++ 工厂模式

    2024-03-18 21:56:01       41 阅读
  12. 【P5737】【深基7.例3】闰年展示

    2024-03-18 21:56:01       38 阅读