当前位置: 首页 > news >正文

【leetcode】104. 二叉树的最大深度

二叉树的最大深度

    • 题目
    • 题解
      • 解释

题目

104. 二叉树的最大深度

给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
在这里插入图片描述

题解

思路:递归

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def maxDepth(self, root):""":type root: Optional[TreeNode]:rtype: int"""if root is None:return 0else:left_height = self.maxDepth(root.left)right_height = self.maxDepth(root.right)return max(left_height, right_height) + 1

解释

  • if root is None::这行代码首先检查当前节点是否为空(即是否是一个叶子节点或空树)。如果是空节点,则深度为 0。

  • left_height = self.maxDepth(root.left):如果当前节点不是空的,那么递归调用 maxDepth来计算当前节点左子树的深度。

  • right_height = self.maxDepth(root.right):同样的,递归调用 maxDepth 来计算右子树的深度。

  • return max(left_height, right_height) + 1:通过 max(left_height, right_height) 计算左右子树深度的最大值,再加 1 表示当前节点的深度。

        1/ \2   3/ \4   5
  • 对于根节点 1,我们计算其左子树(节点 2)和右子树(节点 3)的最大深度。

  • 左子树的最大深度是 3(节点 2 -> 节点 4 或节点 5),右子树的最大深度是 1(只有节点 3)。

  • 所以,最大深度是 max(3, 1) + 1 = 4。

相关文章:

  • 【阿里巴巴 x 浙江大学】信息与交互设计 - 交互设计流程与要素
  • 在 IntelliJ IDEA 中运行时出现“Log already in use? tmlog in ./“
  • 面对3倍流量激增,「纽约时报」如何既稳又省?
  • 楼宇自控新方向:电力载波技术——低成本、高兼容性的智能未来
  • cocos android打包 错误总结
  • 瑞芯微 MIPI D-PHY 接收器(RX)驱动学习笔记
  • Vue + Vite 项目部署 Docker 全攻略:原理、路由机制、问题排查与开发代理解析
  • OBS Studio是什么?应用场景有哪些?
  • 一步一步学python之(4)编写第一个python程序(Pycharm)
  • FastDFS
  • 第七节 工程化与高级特性-装饰器(Decorators)的应用场景
  • Web APIS Day06
  • 日本云服务器租用多少钱合适
  • VRFF: Video Registration and Fusion Framework
  • Vue 跳转页面,第一次进页面,会出现样式混乱,刷新后即恢复正常(问题已解决)
  • flowable查询历史流程实例时条件变量的类型问题
  • 【消息队列】——如何使用Actor模型解决并发问题
  • RAID 阵列有哪些?分别有什么作用?
  • C++ 语言基础之数据类型详解
  • 万物互联时代的工业数据中枢——iGR-IMS多场景适配体系
  • 网站云优化/自助建站免费搭建个人网站
  • 深圳做针织衫服装的网站/怎么自己做一个网址
  • 自助建微网站/百度企业官网
  • 做网站以前出名的公司/app推广平台放单平台
  • wordpress4.8换成中文/黄山网站seo
  • 苹果正秘密开发搜索引擎/福州短视频seo获客