首页 > 其他分享 >leetcode 二叉树的最大深度

leetcode 二叉树的最大深度

时间:2023-09-13 22:12:28浏览次数:34  
标签:right TreeNode val int 二叉树 深度 root leetcode

给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1:
image

输入:root = [3,9,20,null,null,15,7]
输出:3
示例 2:

输入:root = [1,null,2]
输出:2

解题思路

这里可以转化思路为

  1. 计算当前节点 左子树的深度 和 右子树的深度
  2. 判断哪个深度值更大,然后加上自己这个节点(自己算一层深度为1),即加一,为当前树的深度
  3. 那么利用递归的思想,就可以从最底层的节点,层层向上累加,即可得到这棵树的最大深度
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int maxDepth(TreeNode root) {
        int depth = 0;
        if (root == null) {
            return depth;
        }

        depth = 1;
        int leftDepth = maxDepth(root.left);
        int rightDepth = maxDepth(root.right);
        return depth += leftDepth > rightDepth ? leftDepth : rightDepth;
    }
}

标签:right,TreeNode,val,int,二叉树,深度,root,leetcode
From: https://www.cnblogs.com/gradyblog/p/17700927.html

相关文章

  • m基于深度学习网络的动物识别系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要基于深度学习网络的动物识别系统是一种利用深度学习技术来进行动物识别和定位的系统。这种系统的工作原理是,通过使用深度神经网络对图像或视频进行分析,以识别出其中的动物并确定其位置。深度学习网络,特别是卷......
  • 《动手学深度学习 Pytorch版》 5.4 自定义层
    5.4.1不带参数的层importtorchimporttorch.nn.functionalasFfromtorchimportnnclassCenteredLayer(nn.Module):def__init__(self):super().__init__()defforward(self,X):returnX-X.mean()#仅作减去均值的操作layer=......
  • 【专题】进一步促进数字经济和实体经济深度融合:加速工业互联网建设报告PDF合集分享(附
    原文链接:https://tecdat.cn/?p=33647这份报告合集是基于中国工业产业升级和智能制造的大背景而展开的。报告合集分析了工业互联网平台市场的发展阶段、平台玩家的产品和服务的底层逻辑以及变化趋势,并探讨了补贴减少、数据归属权之争、标准化与盈利模式、ChatGPT等因素对工业互联......
  • Leetcode 27. 移除元素
    题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。双指针Pyth......
  • leetcode547省份数量
    深度优先搜索vector<bool>vis;intnum=0;voiddfs(vector<vector<int>>&isConnected,intx){vis[x]=true;for(inti=0;i<isConnected[x].size();i++){if(!vis[i]&&isConnected[x][i]){dfs(isConnected,i);......
  • 深度融入垂直行业是物联网未来发展必由之路
    三年疫情,打断了很多企业的发展进程。但是疫情已过似乎整个业界生态有了一个很大变化。有一个朋友前一段时间参加深圳电子展后有一个感悟,说的很好:“疫情后有很大变化,疫情后,整个环境状态和疫情前有很大不同。无论企业,个人,还是外部环境,感觉都有变化。这种变化是无形的,但有时又感觉能......
  • 【Leetcode】解题报告Day1~Day2
    解题报告Day11.2235.两数之和给你两个整数num1和num2,返回这两个整数的和。示例1:输入:num1=12,num2=5输出:17解释:num1是12,num2是5,它们的和是12+5=17,因此返回17。示例2:输入:num1=-10,num2=4输出:-6解释:num1+num2=-6,因此返回-6。提示:......
  • LeetCode 1934.确认率
    1934.确认率1.问题关键精炼:确认率是confirmed消息的数量除以请求的确认消息的总数。没有请求任何确认消息的用户的确认率为0。确认率四舍五入到小数点后两位2.难点解析:我觉得这道题是考察AVG函数的使用。根据需求可以看出,答案也就是一个公式:confirmed消息的数量/总......
  • 【深度学习】修改jupyter记事本的内核
    问题描述在使用juypter记事本执行ipynb文件时,默认使用的内核是Python3如果这个环境不包含我们所使用的库,比如pytorch的库,当我们的代码中调用pytorch的一些库方法时,如下面的代码:importtorch此时执行就会报错,会提示找不到对应的模块:ModuleNotFoundError:Nomodule......
  • leetcode841钥匙和房间
    使用深度优先遍历构造的图,只要访问过就标记已访问intnum=0;vector<bool>vis;voiddfs(vector<vector<int>>&rooms,intx){vis[x]=true;num++;for(auto&v:rooms[x]){if(!vis[v])dfs(rooms,v);//说明这个房间没有进去过,所以可以访问}}intmai......