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

示例:

给定二叉树

返回它的最大深度 3 。

解题思路:
我们可以使用广度优先遍历的方式,逐层遍历,每遍历一层,我们就让变量count++,最后返回count即可。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public int maxDepth(TreeNode root) {if(root == null)    return 0;LinkedList<TreeNode> tree = new LinkedList<TreeNode>();int count = 0;tree.add(root);//判断树是否为空while(!tree.isEmpty()){//存放下一层节点的临时变量LinkedList<TreeNode> temp = new LinkedList<TreeNode>();//每遍历一层count++count++;//弹出每层的节点并遍历他们下层是否还有节点,如果有那么放到temp中for(int i = tree.size(); i > 0; i--){TreeNode node = tree.poll();if(node.left != null)   temp.add(node.left);if(node.right != null)  temp.add(node.right);}//让tree指向下一层节点tree = temp;}return count;}
}

力扣战绩:

当然还有更牛皮的算法。求二叉树的深度,其实就是求最长的左右子树的深度再加上根节点的1。我们利用递归的方式,一直往下遍历左右子树的节点,然后找到左右子树中深度最大的再加上1,就得到树的深度了。

class Solution {public int maxDepth(TreeNode root) {if(root == null) return 0;return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;}
}

力扣战绩:

二叉树的深度怎么算(Java代码实现)相关推荐

  1. 二叉树代码 java面试题_《剑指offer》面试题39 二叉树的深度(java)

    摘要: 今天翻到了<剑指offer>面试题39,题目二中的解法二是在函数的参数列表中通过指针的方式进行传值,而java是没有指针的,所以函数要进行改造.然而我翻了下别人的java版本(我就 ...

  2. java代码实现排序二叉树

    创建排序二叉树的步骤: 1.以根节点为当前节点开始搜索 2.拿新节点的值和当前节点的值比较 3.如果新节点的值更大,则以当前结点的右子节点作为新的当前节点:如果新节点的值更小,则以当前节点的左子节点作 ...

  3. 简单二叉树Java代码实现

    二叉树 文章目录 二叉树 一.二叉树是什么? 二叉树的性质 二.二叉树简单JAVA代码实现 1.Node(节点) 2.MyTree(简单二叉树) 总结 一.二叉树是什么? 二叉树是每个结点最多有两个子 ...

  4. Java第20天——二叉树的深度遍历的递归实现

    1 二叉树的遍历比存储.建立要简单. 所以先"手动"建立一个二叉树来玩. 2 递归算法写起来就是舒服. 前.中.后序的代码差别只有输出语句的位置. 3 不需要额外的节点类, 每棵二 ...

  5. 二叉树的建立和遍历程序代码(Java,C)

    C语言 考虑到c语言的scanf("%c",&c)是输入后一个字符一个字符的取出这一特性,我们选择用createBiTree()方法接受输入的参数,然后直接建立.运用递归的 ...

  6. java编程石头剪刀布图片_石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源...

    原标题:石头.剪刀.布!10分钟带你打开深度学习大门,代码已开源 沉沉 发自 宇宙中心 量子位 出品 | 公众号 QbitAI 深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即 ...

  7. java 二叉树的深度、平衡二叉树、二叉树的下一个结点

    1. 二叉树的深度 1. 题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 2. 求解思路 可以用后序遍历,从最后一层 ...

  8. java 根据圆心计算圆弧上点的经纬度_【控制测量学】-高斯投影正算公式以及java代码

    正算公式(将经纬度转化为坐标): java代码(附有源代码和修改后的代码): 源代码: /** * 由经纬度反算成高斯投影坐标 * * @param longitude * @param latitu ...

  9. 《数据结构》—— 二叉树的复制、查深度与算结点操作

    二叉树的操作 一.二叉树的复制 二.计算二叉树的深度 三.计算二叉树的结点 一.二叉树的复制 已经创建好的二叉树,首先我们对它进行判空操作,再创建新的根结点 NewT,把根结点T 赋给 NewT,递归 ...

最新文章

  1. 【转】iOS开发-Protocol协议及委托代理(Delegate)传值
  2. 小米11和小米10至尊版纪念版哪个好
  3. 体验.NET Core使用IKVM对接Java
  4. java浮点型需知_java使用数字类型注意事项
  5. jQuery 1.11 / 2.1 beta 版发布
  6. JavaScript语言精粹(修订版)
  7. jumpserver开源堡垒机部署安装
  8. hdu 6108 小C的倍数问题
  9. 在Exchange Server 2007中修改邮件接受域
  10. linux下使用PulseAudio获取扬声器的音量和是否静音
  11. 在线 服务器 web,web服务器是什么?
  12. instant-ngp总结
  13. php 批量下载网页文件,批量下载文件(以xxx网站为例)
  14. html的后代选择器,CSS3后代选择器和同级选择器简介和实例_html/css_WEB-ITnose
  15. word如何批量更改公式字体
  16. springboot毕设项目会议室预约管理系统kh090(java+VUE+Mybatis+Maven+Mysql)
  17. 【人物专访】FreeICQ的CTO龙云飞[1001]访谈
  18. 在Windows Mobile手机上运行Android
  19. 上计算机课的日记100字,电脑课_作文100字_小学六年级作文_第一范文网
  20. spring+springMVC+mybatis 上篇

热门文章

  1. 从平台到中台 | Elasticsearch 在蚂蚁金服的实践经验
  2. METIS安装和使用
  3. 大二上---数据结构课程设计
  4. 防火墙、WAF、IPS、IDS、堡垒机的区别
  5. 人群计数数据集汇总和详细介绍,全网最全,crowd counting datasets
  6. GraphSense介绍
  7. PVLAN (Private VLAN)
  8. linux .mo文件,MO 文件扩展名: 它是什么以及如何打开它?
  9. 基于xilinx-IP的FIR滤波器多通道实现
  10. 我国成功研制EB级云存储系统:可满足大数据量存储落地需求