[剑指 Offer 55 - I. 二叉树的深度] | 刷题打卡[5]

简介: [剑指 Offer 55 - I. 二叉树的深度] | 刷题打卡[5]

一、题目描述:


输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。


例如

给定二叉树 [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回它的最大深度 3 。


提示:

节点总数 <= 10000


二、思路分析:


二叉树的深度


二叉树的深度:树中的一个节点的深度是它到根节点的路径上的边的条数。(Robert Sedgewick和Kevin Wayne所著的《算法》第4版)


树中某节点的高度是指从该节点到叶子节点的最长简单路径边的条数。 树的高度等于所有节点的最大深度(即树的深度)。


树的深度


1. 一棵树只有一个节点或没有节点,它的深度是0;

2. 二叉树的根节点只有左子树而没有右子树,那么可以判断,二叉树的深度应该是其左子树的深度加1;

3. 二叉树的根节点只有右子树而没有左子树,那么可以判断,那么二叉树的深度应该是其右树的深度加1;

4. 二叉树的根节点既有右子树又有左子树,那么可以判断,那么二叉树的深度应该是其左右子树的深度较大值加1。


三、AC 代码:


var maxDepth = function(root) {
    //一个节点都没有
    if(root===null){
        return 0
    }
    //只有一个根节点
    if(root.left===null && root.right===null){
        return 1
    }
    //递归左子树
    let leftMax = maxDepth(root.left)
    //递归右子树
    let rightMax = maxDepth(root.right)
    //返回左右子树的深度较大值加1
    return Math.max(leftMax,rightMax)+1
};

四、总结:


1.本题考察对二叉树深度的基本理解。什么是树的深度,以及树深度的计算规则和技巧。

相关文章
|
存储 XML 数据可视化
通用仓库元模型概述
通用仓库元模型(Common Warehouse metamodel,CWM)指定了可用于在分布式异构环境中的仓库工具、仓库平台和仓库元数据存储库之间轻松交换仓库和商业智能元数据的接口。
1117 0
通用仓库元模型概述
|
Java
java类与方法的解释及其创建使用(实例:水池水的进出)
java类与方法的解释及其创建使用(实例:水池水的进出)
234 3
|
缓存 前端开发 JavaScript
前端性能优化:提升网页加载速度的10个技巧
【10月更文挑战第25天】在互联网时代,网页加载速度直接影响用户体验和搜索引擎排名。本文介绍了10个提升网页加载速度的技巧,包括减少HTTP请求、启用压缩、使用CDN、延迟加载非关键资源、优化图片、减少重定向、使用浏览器缓存、优化CSS和JavaScript、异步加载JavaScript以及代码分割。通过这些方法,可以显著提高网页性能,改善用户体验。
2852 5
|
Java 测试技术 开发者
滚雪球学Java(09-9):Java中的三目运算符,你真的掌握了吗?
【2月更文挑战第20天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!
434 1
|
开发框架 前端开发 .NET
【C#】LIMS实验室信息管理系统源码
LIMS(Laboratory Information Management System)即实验室信息管理系统,是通过对样品检验流程、分析数据及报告、实验室资源和客户信息等要素的综合管理,按照标准化实验室管理规范,建立符合实验室业务流程的质量体系,实现实验室信息化管理。是实验室提高分析水平、规范样品检测过程和降低实验成本,为客户提供优秀服务的信息平台。
455 1
|
监控 Java
分布式链路监控系统问题之OpenTracing规范的问题如何解决
分布式链路监控系统问题之OpenTracing规范的问题如何解决
170 0
|
设计模式 人工智能 算法
策略模式在AI大模型中的魅力与实例分析
策略模式在AI大模型中的魅力与实例分析
359 0
|
监控 数据可视化 算法
【Java虚拟机】JVM日志分析和可视化工具实操
【Java虚拟机】JVM日志分析和可视化工具实操
【Java虚拟机】JVM日志分析和可视化工具实操
|
人工智能 监控 API
WritingGPT: 基于 ChatGPT 和 AutoGPT 打造个人写作团队
WritingGPT: 基于 ChatGPT 和 AutoGPT 打造个人写作团队
300 0
WritingGPT: 基于 ChatGPT 和 AutoGPT 打造个人写作团队
|
算法 索引
代码随想录训练营day34| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果...
代码随想录训练营day34| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果...
206 0