剑指offer系列之三十七:二叉树的深度
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
有了前面寻找二叉树路径的基础之后,解决这题应该不难。根据书上的思路,有一种更简洁的算法,思路如下:如果二叉树只有根节点那么深度就是1,如果只有左子树,那么就是左子树的深度加1就是整棵二叉树的深度;如果只有右子树,那么二叉树的深度就是右子树的深度加1;如果既有左子树又有右子树,那么二叉树的深度就是左右子树中深度更大的深度加1了。根据这个过程,自然发现,实际上只需要分别递归二叉树的左右子树并计算其深度,那么最后在其较大值中加1就是二叉树的深度了。所以,实现的代码如下(已被牛客AC):
package com.rhwayfun.offer;public class BTreeDepth {static class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}}public int TreeDepth(TreeNode root) {if(root == null) return 0;int leftSubTree = TreeDepth(root.left);int rightSubTree = TreeDepth(root.right);return leftSubTree > rightSubTree ? leftSubTree + 1 : rightSubTree + 1;}public static void main(String[] args) {TreeNode root = new TreeNode(1);TreeNode node1 = new TreeNode(2);TreeNode node2 = new TreeNode(3);TreeNode node3 = new TreeNode(4);TreeNode node4 = new TreeNode(5);TreeNode node5 = new TreeNode(6);TreeNode node6 = new TreeNode(7);root.left = node1;root.right = node2;node1.left = node3;node1.right = node4;node2.right = node5;node4.left = node6;int d = new BTreeDepth().TreeDepth(root);System.out.println(d);}
}
剑指offer系列之三十七:二叉树的深度相关推荐
- 剑指offer(C++)-JZ55:二叉树的深度(数据结构-树)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的 ...
- leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列
剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...
- 《LeetCode力扣练习》剑指 Offer 28. 对称的二叉树 Java
<LeetCode力扣练习>剑指 Offer 28. 对称的二叉树 Java 一.资源 题目: 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的 ...
- LeetCode Algorithm 剑指 Offer 28. 对称的二叉树
剑指 Offer 28. 对称的二叉树 Ideas 一开始想的有问题,看了例子以为对称二叉树的中序遍历序列是回文数组,然后就用这么写了,结果到第192个测试用例[1,2,2,2,null,2]就失败了 ...
- 在要求输入数字处找到非数字字符_剑指 Offer 67. 把字符串转换成整数 leetcode 剑指offer系列...
点击专辑上方"蓝字"关注我吧 题目难度: 中等 原题链接[1] 今天继续更新剑指 offer 系列, 老样子晚上 6 点 45 分准时更新公众号 每日精选算法题, 大家记得关注哦~ ...
- 剑指offer python实现_剑指offer系列python实现 日更(三)
今天来讲讲斐波那契数列和它的孩子们~先讲个冷笑话:今天来一盘斐波那契炒饭,它等于昨天的炒饭加上前天的炒饭 7.斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第 ...
- 【LeetCode】剑指 Offer 28. 对称的二叉树
[LeetCode]剑指 Offer 28. 对称的二叉树 文章目录 [LeetCode]剑指 Offer 28. 对称的二叉树 一.递归 一.递归 对称二叉树定义:对于书中任意两个对称结点 L 和 ...
- 数组中其余的排除_[leetcode 剑指offer系列] 面试题04. 二维数组中的查找
题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 这道题的优化空间非常大, 个人感觉很适合作为面试题, 值得一做. 大家在我的公众号"每日精选算法题"中的聊天框中回 ...
- 剑指offer——复习1:二叉树三种遍历方式的迭代与递归实现
剑指offer--复习1:二叉树三种遍历方式的迭代与递归实现 20180905更新:这个博客中的解法不是很好,看相应的LeetCode题目笔记~~~ 我感觉此博客中的说法更容易让人理解:https:/ ...
最新文章
- GStreamer跨平台多媒体框架
- 吴恩达新书《Machine Learning Yearning》中7个实用建议(附论文)
- pyhon 数据类型转换函数
- 5G对数据中心的架构产生的影响-vecloud微云
- python 网格线_Python版简单网格策略(教学)
- java excil表格开发_JAVA导出Excel电子表格的方法
- bean validation校验方法参数_Spring Boot 之使用 validation 验证参数
- 循环的各种形式(不拘一格编程序之四)
- 苹果AirPods 2又有新消息了!具备防滑涂层和新配色
- 如何从技术上“绞杀”盗链者?
- Ajax开发框架(上)[整理]
- hive 配置 mysql时的问题(Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D)
- GB28181移植总结
- 妲己机器人功能_来自机器人影响者的5个功能强大的Instagram教训
- 关于man命令后面加数字
- ASP.NET MVC4 高级编程
- Overture2020免费下载直装版专业钢琴打谱软件(附序列号码)
- 58同城开源web框架 Argo (四)
- 文献(8): 单细胞和空间分析揭示FAP+成纤维细胞和SPP1+巨噬细胞在结直肠癌中的相互作用
- Scene之间的数据传递