37 二叉树的最大深度

news2024/11/27 13:47:27

二叉树的最大深度

    • 题解1 深度优先搜索(递归弹栈)
    • 题解2 广度优先搜索(队列)

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

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

在这里插入图片描述
提示:

  • 树中节点的数量在 [0, 1 0 4 10^4 104] 区间内。
  • -100 <= Node.val <= 100

题解1 深度优先搜索(递归弹栈)

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    int maxDepth(TreeNode* root) {
        if(!  root) return 0;
        return max(maxDepth(root->left), maxDepth(root->right))+1;
    }
};

在这里插入图片描述

题解2 广度优先搜索(队列)

class Solution {
public:
    int maxDepth(TreeNode* root) {
        if(!  root) return 0;
        queue<TreeNode*> Que;
        Que.push(root);

        int depth = 0;
        
        while(! Que.empty()){
        	// 某一层的结点数
            int tmpSize = Que.size();
            // 每个结点向下探寻左右结点
            while(tmpSize){
                auto k = Que.front();
                Que.pop();
                if(k->left) Que.push(k->left);
                if(k->right) Que.push(k->right);
                tmpSize --;
            }
            // 每次扩展相当于一层
            depth ++;
        } 

        return depth;
    }
};

在这里插入图片描述

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

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

相关文章

阿里云PolarDB自研数据库详细介绍_兼容MySQL、PostgreSQL和Oracle语法

阿里云PolarDB数据库是阿里巴巴自研的关系型分布式云原生数据库&#xff0c;PolarDB兼容三种数据库引擎&#xff1a;MySQL、PostgreSQL、Oracle&#xff08;语法兼容&#xff09;&#xff0c;目前提供云原生数据库PolarDB MySQL版、云原生数据库PolarDB PostgreSQL版和云原生数…

使用 Python 的多项 Logistic 回归问题

一、说明 多项逻辑回归是一种统计方法&#xff0c;用于预测两个以上类别的分类结果。当因变量是分类变量而不是连续变量时&#xff0c;它特别有用。 二、分类预测 在多项式逻辑回归中&#xff0c;模型预测属于因变量每个类别的观测值的概率。这些概率可以解释为观察结果属于每…

聊聊并发编程——原子操作类和Fork/Join框架

目录 原子操作类 实现原子性原理 保证原子性的方法 Fork/Join框架 分而治之 工作窃取算法 Fork/Join框架的设计 示例 原子操作类 线程A和线程B同时更新变量i进行操作i1,最后的结果可能i不等于3而是等于2。这是线程不安全的更新操作&#xff0c;一般我们会使用Synchron…

CCF CSP认证 历年题目自练Day18

CCF CSP认证 历年题目自练Day18 题目一 试题编号&#xff1a; 201809-1 试题名称&#xff1a; 卖菜 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 256.0MB 问题描述&#xff1a; 问题描述   在一条街上有n个卖菜的商店&#xff0c;按1至n的顺序排成一排&#xff0c;这…

如何保持终身学习

文章目录 2.1. 了解你的大脑2.2 学习是对神经元网络的塑造2.3 大脑的一生 3.学习的心里基础3.1 固定思维与成长思维3.2 我们为什么要学习 4. 学习路径4.1 构建知识模块4.2 大脑是如何使用注意力的4.3 提高专注力4.4 放松一下&#xff0c;学的更好4.5 巩固你的学习痕迹4.6 被动学…

amazon自养号测评:为卖家提供稳定转化率的解决方案

亚马逊作为全球最大的跨境电商平台之一&#xff0c;吸引了大量卖家进入市场。然而&#xff0c;如何提高产品的转化率&#xff0c;吸引更多买家并促使他们下单&#xff0c;对卖家来说仍然是一个关键问题。本文将分享一些亚马逊卖家可以采用的小技巧&#xff0c;帮助他们实现这一…

Nginx之动静分离解读

目录 基本概念 基本入门 location匹配顺序 补充&#xff1a;URLRewrite 基本概念 动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来&#xff0c;动静资源做好了拆分以后&#xff0c;我们就可以根据静态资源的特点将其做缓存操作&#x…

2023八股每日一题(九月份)

9月13日 Q&#xff1a;JDK、JRE、JVM之间的区别 A&#xff1a; JDK(Java SE Development Kit)&#xff0c;Java标准开发包&#xff0c;它提供了编译、运⾏Java程序所需的各种⼯具和资源&#xff0c;包括Java编译器、Java运⾏时环境&#xff0c;以及常⽤的Java类库等JRE( Java…

jQuery入门学习

jQuery框架 jQuery是一个快速的、简洁的JavaScript框架&#xff08;库&#xff09;&#xff0c;它会封装很多JavaScript中常用的功能代码&#xff0c;提供了一个简洁的JS设计模式 优化HTML文档操作&#xff08;优化DOM操作&#xff09;事件处理动画设计Ajax 要使用JQ我们需要…

MySQL进阶_3.性能分析工具的使用

文章目录 第一节、数据库服务器的优化步骤第二节、查看系统性能参数第三节、 慢查询日志第四节、 查看 SQL 执行成本第五节、 分析查询语句&#xff1a;EXPLAIN 第一节、数据库服务器的优化步骤 当我们遇到数据库调优问题的时候&#xff0c;可以按照以下流程进行分析。整个流程…

【Java每日一题】— —第十八题:求二维数组中的元素最小值及其索引。(2023.10.02)

&#x1f578;️Hollow&#xff0c;各位小伙伴&#xff0c;今天我们要做的是第十八题。 &#x1f3af;问题&#xff1a; 求二维数组中的元素最小值及其索引。 测试结果如下&#xff1a; &#x1f3af; 答案&#xff1a; int [][]anew int[3][];a[0]new int [3];a[1]new int[5…

【Leetcode】 17. 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits "23" 输出&…

如何在 Wio Terminal 上运行 RT-Thread 操作系统

Wio Terminal 是 Seeed Studio 设计的一款开发套件。它基于 SAMD51 的微控制器&#xff0c;运行速度为 120MHz&#xff08;最高可达 200MHz&#xff09;&#xff0c;拥有 4MB 外部闪存和 192KB RAM&#xff0c;具有 Realtek RTL8720DN 支持的无线连接&#xff0c;同时支持蓝牙和…

京东数据报告:2023年8月京东手机行业品牌销售排行榜

鲸参谋监测的京东平台8月份手机市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台的数据显示&#xff0c;8月份&#xff0c;京东平台手机的销售量为380万&#xff0c;环比下滑约7%。同比下滑约17%&#xff1b;销售总额为120亿&#xff0c;环比下滑约17%&#xff0c;…

开启赏车新体验 远航汽车即将亮相2023中国(天津)国际汽车展览会

2023年9月28日至10月4日&#xff0c;2023中国&#xff08;天津&#xff09;国际汽车展览会将在国家会展中心&#xff08;天津&#xff09;举行。本次车展预计展出总面积20万平方米&#xff0c;是本年度北方地区规模最大、品牌最齐全的国际顶级车展。远航汽车将携旗下多款车型亮…

c#设计模式-结构型模式 之 装饰者模式

&#x1f680;介绍 在装饰者模式中&#xff0c;装饰者类通常对原始类的功能进行增强或减弱。这种模式是在不必改变原始类的情况下&#xff0c;动态地扩展一个对象的功能。这种类型的设计模式属于结构型模式&#xff0c;因为这种模式涉及到两个类型之间的关系&#xff0c;这两个…

Java编程技巧:分类

1、表结构 字段名称字段类型字段解释idvarchar主键idnamevarchar分类名称sequenceint同级排序parentvarchar父级分类id&#xff0c;一级分类的父级分类id为0pathvarchar分类id路径&#xff0c;中间用英文逗号,分隔&#xff0c;方便使用find_in_set函数搜索namePathvarchar分类…

90、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Hash 相关命令

本次讲解要点&#xff1a; Hash 相关命令&#xff1a;是指value中的数据类型 启动redis服务器&#xff1a; 打开小黑窗&#xff1a; C:\Users\JH>e: E:>cd E:\install\Redis6.0\Redis-x64-6.0.14\bin E:\install\Redis6.0\Redis-x64-6.0.14\bin>redis-server.exe red…

Linux系统下C语言实现百度网盘(附实现步骤,和全部代码讲解)

Linux系统下C语言实现百度网盘 Linux操作系统下用C语言写一个网盘完整代码&#xff1a;服务器客户端 Linux操作系统下用C语言写一个网盘 本次实验完成了完整的网盘功能&#xff08;查询文件&#xff0c;下载文件&#xff0c;上传文件&#xff0c;刷新界面&#xff0c;和退出系…

服务器流量只有1tb,害怕被刷怎办,这篇文章教你防止对方刷流量!

本篇文章主要讲解&#xff0c;服务器流量监控和关闭网络请求的方法教程&#xff0c;在某种情况下可以有效杜绝被刷流量的困扰。 日期&#xff1a;2023年10月2日 作者&#xff1a;任聪聪 根本有效避免刷流的前置办法 说明&#xff1a;只选择固定带宽&#xff0c;不限流量的服务器…