图解LeetCode——剑指 Offer 55 - I. 二叉树的深度

简介: 图解LeetCode

一、题目

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

二、示例

2.1> 示例1:

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

输出】返回它的最大深度 3 。

提示:

  • 节点总数 <= 10000

三、解题思路

  • 根据题目描述,我们要计算出这棵二叉树的深度,那么我们可以通过深度遍历或者广度遍历这两种遍历方式,来获得这道题的最终解。
  • 下面我们采用深度遍历的方式来解题,由于二叉树的深度是需要根据左子树深度和右子树深度进行对比后取最大值才能计算出来,所以我们采用深度遍历中的后序遍历方式,即:先遍历左子树,然后遍历右子树,最后遍历子树的根节点。那么它的代码模型是这样的:
publicvoiddfs(TreeNodenode) {
    ... ...
dfs(root.left); // 遍历左子树dfs(root.right); // 遍历右子树node// 遍历根节点    ... ...    
}
  • 所以,当我们遍历到某个叶子节点之后,我们返回深度depth等于0,然后每次向上层返回的时候,都执行加1操作。那么当返回到根节点之后,就是某一侧分支的深度了。其中,在每次向上返回一层都执行加1时,我们应该主要,对于每层来说,这个节点在理论上应该是具有左子树和右子树的,所以我们需要先通过Math.max(左子树深度, 右子树深度),来确定最深的子树,然后再对其执行深度加1的操作。
  • 好了,具体解题思路说完了,下面我们以输入=[3,9,20,null,null,15,7]这个二叉树,来计算其二叉树的深度为例,看一下具体的计算过程。请见下图所示:

四、代码实现

classSolution {
publicintmaxDepth(TreeNoderoot) {
if (root==null) return0;
intlDepth=maxDepth(root.left);
intrDepth=maxDepth(root.right);
returnMath.max(lDepth+1, rDepth+1);
    }
}


今天的文章内容就这些了:

写作不易,笔者几个小时甚至数天完成的一篇文章,只愿换来您几秒钟的 点赞 & 分享

更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」

相关文章
|
2月前
【LeetCode 31】104.二叉树的最大深度
【LeetCode 31】104.二叉树的最大深度
26 2
|
2月前
【LeetCode 29】226.反转二叉树
【LeetCode 29】226.反转二叉树
20 2
|
2月前
【LeetCode 43】236.二叉树的最近公共祖先
【LeetCode 43】236.二叉树的最近公共祖先
21 0
|
2月前
【LeetCode 38】617.合并二叉树
【LeetCode 38】617.合并二叉树
15 0
|
2月前
【LeetCode 37】106.从中序与后序遍历构造二叉树
【LeetCode 37】106.从中序与后序遍历构造二叉树
20 0
|
2月前
【LeetCode 34】257.二叉树的所有路径
【LeetCode 34】257.二叉树的所有路径
21 0
|
2月前
【LeetCode 32】111.二叉树的最小深度
【LeetCode 32】111.二叉树的最小深度
19 0
|
3月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
4月前
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
62 6
|
4月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
124 2