二叉树|104.二叉树的最大深度 111.二叉树的最小深度

news2024/9/20 4:58:39

 104.二叉树的最大深度

力扣题目链接

class solution {
public:
    int getdepth(TreeNode* node) {
        if (node == NULL) return 0;
        int leftdepth = getdepth(node->left);       // 左
        int rightdepth = getdepth(node->right);     // 右
        int depth = 1 + max(leftdepth, rightdepth); // 中
        return depth;
    }
    int maxDepth(TreeNode* root) {
        return getdepth(root);
    }
};

深度和高度的区别你清楚吗?

准确的来讲上面的这个代码求的是高度。

代码随想录 (programmercarl.com)

这题有很多种解法,想详细了解的朋友看上面的链接哦!

这是我的代码实现~命名应该是有点不规范。

虽然我用的是后序遍历但是,

前序(中左右)的遍历顺序,这才是真正求深度的逻辑!

111.二叉树的最小深度

力扣题目链接

class Solution {
public:
    int getDepth(TreeNode* node) {
        if (node == NULL) return 0;
        int leftDepth = getDepth(node->left);           // 左
        int rightDepth = getDepth(node->right);         // 右
                                                        // 中
        // 当一个左子树为空,右不为空,这时并不是最低点
        if (node->left == NULL && node->right != NULL) { 
            return 1 + rightDepth;
        }   
        // 当一个右子树为空,左不为空,这时并不是最低点
        if (node->left != NULL && node->right == NULL) { 
            return 1 + leftDepth;
        }
        int result = 1 + min(leftDepth, rightDepth);
        return result;
    }

    int minDepth(TreeNode* root) {
        return getDepth(root);
    }
};

这题主要要理解最低点的定义,避免出错哦!

递归的代码是不是还挺好记的?哈哈哈,但是重点一定要理解,特别是它递归的部分,我感觉自己好像还不是特别理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1535688.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式-4种经典继电器驱动电路-单片机IO端口/三极管/达林顿管/嵌套连接

文章目录 一:继电器原理二:单片机驱动电路三:经典继电器驱动电路方案3.1 继电器驱动电路方案一:I/O端口灌电流方式的直接连接3.1.1 方案一的继电器特性要求3.1.2 方案一可能会损坏I/O口 3.2 继电器驱动电路方案二:三极…

记录一次基于AES加密的恶意软件逆向分析和解密过程(含文件)

导入(Imports)和字符串 首先,用IDA或Ghidra加载文件test.dat,文件为64位文件 IDA点击View==>Open subviews==>Imports,查看导入信息 Ghidra可以直接看到 可以看到,导入函数有: __printf_chk, malloc, __isoc99_sscanf, putchar, __stack_chk_fail, __cxa_fina…

安捷伦Agilent E8361C网络分析仪

181/2461/8938产品概述: 安捷伦e 8361 c网络分析仪提供通用网络分析,可选软件和/或硬件为您的应用定制-如多端口、脉冲射频等。 安捷伦E8361C网络分析仪的显示窗口数量不限,可以调整大小和重新排列,每个窗口最多有24条活动轨迹和…

CSS 脱离标准文档流 浮动

浮动 在标准流当中,元素或者标签在页面上摆放的时候会出现不如意的地方。要想解决这些问题可以采用脱离标准流的方式来进行解决这些问题,脱离标准流也称为脱离文档流。 脱离标准流的解决方式有三种,一种是浮动,另外一种是固定定位…

【Flask】Flask项目结构初识

1.前提准备 Python版本 # python 3.8.0 # 查看Python版本 python --version 安装第三方 Flask pip install flask # 如果安装失败,可以使用 -i,指定使用国内镜像源 # 清华镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/ 检查 Flask 是…

大数据分析-基于Python的电影票房信息数据的爬取及分析

概要 现如今,人民群众对物质生活水平的要求已不再局限于衣食住行,对于精神文化有了更多的需求。电影在我国越来越受欢迎,电影业的发展越来越迅猛,为了充分利用互联网技术的发展,掌握电影业的态势,对信息进行…

【3GPP】【核心网】【4G】4G手机接入过程,手机附着过程(超详细)

1. 4G手机接入过程,手机附着过程 附着(Attach): 终端在PLMN中注册,从而建立自己的档案,即终端上下文 进行附着的三种情况: ①终端开机后的附着,初始附着 ②终端从覆盖盲区返回到…

全栈的自我修养 ———— uniapp中加密方法

直接按部就班一步一步来 一、首先创建一个js文件填入AES二、创建加密解密方法三、测试 一、首先创建一个js文件填入AES 直接复制以下内容 /* CryptoJS v3.1.2 code.google.com/p/crypto-js (c) 2009-2013 by Jeff Mott. All rights reserved. code.google.com/p/crypto-js/wi…

(ROOT)KAFKA详解

生产篇 使用 /** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to Y…

使用Windows的“远程桌面连接”Ubuntu主机连接不上问题解决

问题描述: 使用Windows自带的“远程桌面连接”来连接自己的Ubuntu的系统的过程中,自己已经成功安装了 xrdp 文件包,但是在使用“远程桌面连接”时,自己的“远程桌面连接”软件在输入Ubuntu系统的用户名和密码后,连接不…

LRU的设计与实现-算法通关村

LRU的设计与实现-算法通关村 缓存是应用软件的必备功能之一,在操作系统,Java里的Spring、mybatis、redis、mysql等软件中都有自己的内部缓存模块,而缓存是如何实现的呢?在操作系统教科书里我们知道常用的有FIFO、LRU和LFU三种基本…

Java-SSM房租租赁系统

Java-SSM房租租赁系统 1.服务承诺: 包安装运行,如有需要欢迎联系(VX:yuanchengruanjian)。 2.项目所用框架: 前端:JSP、jquery、bootstrap等。 后端:SSM,即Spring、SpringMvc、Mybatis等。 3.项目功能点: 3-1.后端房东功能: 1.…

linux学习之Socket

目录 编写socket-udp 第一步,编写套接字 第二步,绑定端口号 第三步,启动服务器,读取数据 第四步,接收消息并发回信息给对方 编写socket-Tcp 第一步,编写套接字 第二步,绑定端口号 第三步…

解读BGInfo配置命令

命令行中的第一条命令是用于修改Windows注册表的,具体解释如下: reg add HKEY_CURRENT_USER\Software\Sysinternals\BGInfo /v EulaAccepted /t REG_DWORD /d 1 /f reg add:这是一个用来向Windows注册表添加或修改键值的命令行指令。HKEY_C…

『scrapy爬虫』10. 实战爬取自己的csdn信息(详细注释步骤)

目录 1. 数据库建表2. 搭建项目环境创建项目新建爬虫虚拟环境中安装库 定义数据类型(item.py)爬虫(spiders/csdn.py)管道(pipelines.py)中间件(middlewares.py)项目设置(setting.py)运行测试总结 欢迎关注 『scrapy爬虫』 专栏,持续更新中 欢迎关注 『scrapy爬虫』 …

Git进阶用法:Git分支轻松使用,配有图文

一、文章内容 git和分支相关的概念.git和分支有关的命令.git项目实战环节. 二、相关概念 分支:分支的概念好比树干的分支,每一跟分支都是从主干分出来的,营养是主干给的,所以在git里主干和分支也是如此,在git里主分…

HBCalculator 程序:通过 VMD 可计算分子动力学模拟中氢键密度和强度的一维和二维分布

分享一个通过 VMD 可计算分子动力学模拟中氢键密度和强度的一维和二维分布程序 HBCalculator。 感谢论文的原作者! 主要内容 “氢键是分子系统中关键的非共价相互作用,对生物、化学和能量相关过程产生重大影响;因此,描述氢键信息…

Leetcode 70.爬楼梯

心路历程: 这道题是之前学院的一道复试题,大家都没怎么刷过算法题,只记得当年凭借几次试错自己把这道题做出来了,当时也不知道动态规划之类的。 正常来讲,这种找不到循环结构的题一般都是递归解决。 注意的点&#x…

Day02-DDLDMLDQL(定义,操作,查询)(联合查询,子查询,字符集和校对集,MySQL5.7乱码问题)

文章目录 Day02-DDL&DML和DQL学习目标1. SQL语言的组成2. DDL2.1 数据库结构2.2 表结构2.3 约束2.3.1 主键约束(重要)(1)特点(2) 添加主键(3)删除主键(了解) 2.3.2 自增约束(1)特点(2) 添加自增约束(3)删除自增约束(了解) 2.3.3 非空约束(1)添加非空约束(2) 删除非空约束 2…

EtherCAT 开源主站 IGH 在 linux 开发板的移植和伺服通信测试

手边有一套正点原子linux开发板imax6ul,一直在吃灰,周末业余时间无聊,把EtherCAT的开源IGH主站移植到开发板上玩玩儿,搞点事情做。顺便学习研究下EtherCAT总线协议及其对伺服驱动器的运动控制过程。实验很有意思,这里总…