求二叉树的深度

简介: 求二叉树的深度

5be268bbdc3644a3a6b2f284449bdc22.png86c40bca9d0d41d5890f7f5b0c7d6b02.png


这个题可以这样做,采用递归的思想,


深度是指树的根节点到任一叶子节点路径上节点的数量,因此从根节点每次往下一层深度就会加1。因此二叉树的深度就等于根节点这个1层加上左子树和右子树深度的最大值,每个子树我们都可以看成一个根节点,继续用上述方法求的深度,这里就运用了递归的思想


思路


每个结点不为空,深度累计+1


遍历左右子树,递归算深度


找深度最大值+1



8ed38dc583fe48a9af5c2301301e0534.png

代码如图


public class Solution {
    public int TreeDepth(TreeNode root) {
        //如果为空结点,那么没有深度
        if(root==null)
           return 0;
        //如果不为空,返回子树深度加1
        return   Math.max(TreeDepth(root.left),TreeDepth(root.right))+1;
    }
}
相关文章
|
2月前
|
存储
【二叉树前沿篇】树
【二叉树前沿篇】树
24 0
|
2月前
|
C++
二叉树的最小深度(C++)
二叉树的最小深度(C++)
24 1
|
2月前
|
C++ Python
leetcode-111:二叉树的最小深度
leetcode-111:二叉树的最小深度
32 0
【剑指offer】-二叉树的深度-36/67
【剑指offer】-二叉树的深度-36/67
|
9月前
【Leetcode -100.相同的树 -104.二叉树的深度】
【Leetcode -100.相同的树 -104.二叉树的深度】
18 0
剑指offer 59. 二叉树的深度
剑指offer 59. 二叉树的深度
40 0
剑指offer 55 二叉树的深度
DFS深度优先二叉树无非就那几个步骤
Leetcode 111 二叉树最小深度
Leetcode 111 二叉树最小深度
110 0
leetcode 111 二叉树最小深度
leetcode 111 二叉树最小深度
49 0
leetcode 111 二叉树最小深度

热门文章

最新文章

  • 1
    流量控制系统,用正则表达式提取汉字
    25
  • 2
    Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
    26
  • 3
    Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
    25
  • 4
    Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
    27
  • 5
    S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
    23
  • 6
    Redis06-Redis常用的命令,模糊的搜索查询往往会对服务器产生很大的压力,MSET k1 v1 k2 v2 k3 v3 添加,DEL是删除的意思,EXISTS age 可以用来查询是否有存在1
    30
  • 7
    Redis05数据结构介绍,数据结构介绍,官方网站中看到
    21
  • 8
    JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
    19
  • 9
    JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
    19
  • 10
    定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
    19