当前位置: 首页 > news >正文

LeetCode——104. 二叉树的最大深度

一、题目

给定一个二叉树,找出其最大深度。

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

说明: 叶子节点是指没有子节点的节点。
在这里插入图片描述

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/

二、C++解法

我的思路及代码

采用BFS,一层一层的对二叉树进行遍历,当整个树都遍历完成的时候也即是当队列中不存在元素的时候,返回即可。

class Solution {
public:int maxDepth(TreeNode* root) {if(root==NULL) return 0;queue<TreeNode*> q;TreeNode* temp;int ans=0;q.push(root);while(q.size()){int size = q.size();for(int i=0;i<size;i++){temp = q.front();q.pop();if(temp->left!=NULL)q.push(temp->left);if(temp->right!=NULL)q.push(temp->right);}ans++;}return ans;}
};
  • 时间复杂度:O(n),其中 n 为二叉树的节点个数。与方法一同样的分析,每个节点只会被访问一次
  • 空间复杂度:此方法空间的消耗取决于队列存储的元素数量,其在最坏情况下会达到 O(n)

官方参考代码

由于我写了BFS的做法,所以这里放上DFS的做法
在这里插入图片描述

class Solution {
public:int maxDepth(TreeNode* root) {if (root == nullptr) return 0;return max(maxDepth(root->left), maxDepth(root->right)) + 1;}
};
  • 时间复杂度:O(n),其中 n 为二叉树节点的个数。每个节点在递归中只被遍历一次
  • 空间复杂度:O(height),其中 height 表示二叉树的高度。递归函数需要栈空间,而栈空间取决于递归的深度,因此空间复杂度等价于二叉树的高度

相关文章:

LeetCode——104. 二叉树的最大深度

一、题目 给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/maximum…...

漫画 | Python是一门烂语言?

这个电脑的主人是个程序员&#xff0c;他相继学习了C、Java、Python、Go&#xff0c; 但是似乎总是停留在Hello World的水平。 每天晚上&#xff0c;夜深人静的时候&#xff0c;这些Hello World程序都会热火朝天地聊天但是&#xff0c;这一天发生了可怕的事情随着各个Hello wor…...

2023.2 新方案 java代码混淆 java加密 字符串加密

Java字节码可以反编译&#xff0c;特别是创业公司,很好的项目很容易被别人破解反编译,造成很严重的损失,所以本混淆方案能很好的保护源码,而且在不断迭代,增强混淆效果,异常问题处理,达到保护项目的目的&#xff1a; 本次升级包括: 2023年02年19日 : ht-confusion-project-1.8…...

Swift 周报 第二十三期

前言 本期是 Swift 编辑组自主整理周报的第十四期&#xff0c;每个模块已初步成型。各位读者如果有好的提议&#xff0c;欢迎在文末留言。 欢迎投稿或推荐内容。目前计划每两周周一发布&#xff0c;欢迎志同道合的朋友一起加入周报整理。 勇敢是即便知道好结局不会每每降临在…...

android系统屏幕旋转角度,应用界面横竖屏,设备旋转角度,三者的区别以及使用。

注意区分以下三种概念的区别&#xff01;&#xff01;&#xff01;。以及使用这三种方式判断横竖屏的方式。系统屏幕旋转角度fun getSystemRotation(): Int {val angle (getSystemService(WINDOW_SERVICE) as WindowManager).defaultDisplay.rotation//系统屏幕旋转的角度值re…...

【华为云-开发者专属集市】DevCloud+ECS、MySQL搭建WordPress

文章目录AppBazaar官网选择与购买项目项目概况操作过程购买DevCloud服务创建项目添加制品库应用部署购买ECS添加部署模板并执行任务故障排除安装及访问WordPress登录网站管理后台访问网站完善部署模板资源释放使用总结AppBazaar官网 首先&#xff0c;我们来到AppBazaar的官网&…...

Milvus 群星闪耀时|又一个小目标达成 :社区正式突破 15,000 星!

如果把 Milvus 看作开源世界中的一束微光&#xff0c;那用户便是无垠宇宙中点点闪烁的星光。用户每一次点亮 star 之时&#xff0c;Milvus 就会迸发出更加耀眼的光芒。不知不觉&#xff0c;已有数以万计的 star 为 Milvus 而亮。2022 年 4 月&#xff0c;Milvus 在 GitHub 的 …...

Qt信号与槽使用方法总结

前言 在图形界面编程中QT是为首选&#xff0c;组件之间如何实现通信是核心的技术内容。Qt 使用了信号与槽的机制&#xff0c;非常的高效、简单、易学&#xff0c;方便开发者的使用。本文详细的介绍了Qt 当中信号与槽的概念&#xff0c;并演示了各种信号与槽的连接方式。 什么…...

SpringCloud alibaba-Sentinel服务降级策略

文章目录RT&#xff1a;异常比例&#xff1a;异常数&#xff1a;RT&#xff1a; 平均响应时间 (DEGRADE_GRADE_RT)&#xff1a;当 1s 内持续进入 N 个请求&#xff0c;对应时刻的平均响应时间&#xff08;秒级&#xff09;均超过阈值&#xff08;count&#xff0c;以 ms 为单位…...

python常用函数——random()函数

random() 返回随机生成的一个实数&#xff0c;范围在[0,1)之间 语法如下&#xff1a; import random random.random() # 注意&#xff1a;random()是不能直接访问的&#xff0c;需要导入random包&#xff0c;然后通过random静态对象调用 # 参数&#xff1a; 无 # 返回值 返回随…...

PX4之启动脚本

PX4通过rcS脚本来设定需要启动的程序&#xff0c;比如设备驱动、控制模块、数据通信等。rcS脚本在项目中的文件位置 ROMFS/px4fmu_common/rcS 对应硬件平台固件上的位置 /etc/init.d/rcS 启动脚本流程如下 #!/bin/sh # PX4FMU startup script. # # 一些注释 ## 设置默认参…...

Java零基础入门到精通(持续更新中)

打开CMD命令窗口 WINR输入cmd 常用cmd命令代码 切换磁盘 E: 回车即可切换到e盘查看当前路径下的所有内容 dir进入目录 cd test回退到上一级目录 cd..进入多级目录 cd test\index\aaa回退到磁盘目录 cd \清屏 cls关闭命令行窗口 exit小例子&#xff1a;使用命令行窗口…...

杂七杂八(12):Bilibili视频缓存 m4s音视频合并 shell脚本

视频目录结构如下&#xff1a; 267132000/ 267132000/c_1015740000/ 267132000/c_1015740000/entry.json 267132000/c_1015740000/80/ 267132000/c_1015740000/80/audio.m4s 267132000/c_1015740000/80/video.m4s267132000/c_1015740011/ 267132000/c_1015740011/entry.json 2…...

Qt 某光谱仪程序开发

某光谱仪程序开发 文章目录某光谱仪程序开发摘要安装驱动注册COM组件导出.h和.cpp在Qt 中添加源文件开发打包程序关键字&#xff1a; Demo、 Qt、 COM、 dumpcpp、 C摘要 今天接到一个临时小任务&#xff0c;写一个的项目子模块的Demo&#xff0c;以供和专家们交流一下项目技…...

蛋白质组学技术与常见分析培训班火热招生中!

什么是蛋白质组学&#xff1f; 蛋白质组学(proteomics)&#xff0c;是以蛋白质组为研究对象&#xff0c;研究细胞、组织或生物体蛋白质组成及其变化规律的科学。包括蛋白质的表达水平&#xff0c;翻译后修饰&#xff0c;蛋白与蛋白相互作用等研究内容&#xff0c;集中于动态描述…...

唤醒手腕 Java 后端 Springboot 框架结合 socketio 学习笔记

socketio 安装配置 Socket.IO是一个完全由JavaScript实现、基于Node.js、支持WebSocket的协议用于实时通信、跨平台的开源框架&#xff0c;它包括了客户端的JavaScript和服务器端的Node.js。 Socket.IO除了支持WebSocket通讯协议外&#xff0c;还支持许多种轮询&#xff08;P…...

C++入门:内联函数、auto关键字、基于范围for循环及指针空值nullptr

目录 一. 内联函数 1.1 内联函数的概念 1.2 内联函数的特性 1.3 内联函数和宏的优缺点对比 二. auto关键字&#xff08;C11&#xff09; 2.1 auto的功能 2.2 auto在使用时的注意事项 三. 基于范围的for循环&#xff08;C11&#xff09; 四. 指针空值nullptr&#xff08…...

Python遗传算法

1 人工智能概述 2020中国人工智能产业年会在苏州召开&#xff0c;会上发布的《中国人工智能发展报告2020》显示&#xff0c;过去十年(2011-2020) &#xff0c;中国人工智能专利申请量达389571件&#xff0c;占全球总量的74.7%&#xff0c;位居世界第一。 报告指出&#xff0c;…...

GEE学习笔记 六十四:绿色中国报告(个人版)

2019年上半年在遥感圈里最火的一篇文章莫过于这篇《China and India lead in greening of the world through land-use management》&#xff08;China and India lead in greening of the world through land-use management | Nature Sustainability&#xff09;&#xff0c;…...

【Kubernetes】【十八】数据存储 高级存储 配置存储

高级存储 PV和PVC ​ 前面已经学习了使用NFS提供存储&#xff0c;此时就要求用户会搭建NFS系统&#xff0c;并且会在yaml配置nfs。由于kubernetes支持的存储系统有很多&#xff0c;要求客户全都掌握&#xff0c;显然不现实。为了能够屏蔽底层存储实现的细节&#xff0c;方便用…...

【Guava】并发编程ListenableFutureService

在技术领域&#xff0c;我们常常被那些闪耀的、可见的成果所吸引。今天&#xff0c;这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力&#xff0c;让我们得以一窥未来的轮廓。然而&#xff0c;作为在企业一线构建、部署和维护复杂系统的实践者&#xff0c;我们深知…...

什么是模型存储

模型存储的理解 模型存储是指将训练好的机器学习模型保存到磁盘&#xff0c;以便后续直接使用而无需重新训练。 为什么需要模型存储&#xff1f; # 没有模型存储&#xff1a;每次使用都要重新训练 model train_model(data) # 可能需要几小时 prediction model.predict(ne…...

OpenClaw飞书机器人集成:千问3.5-9B对话触发详解

OpenClaw飞书机器人集成&#xff1a;千问3.5-9B对话触发详解 1. 为什么选择飞书OpenClaw的私有化方案 去年团队内部开始尝试用AI助手处理日常事务时&#xff0c;我们面临一个典型困境&#xff1a;公有云机器人虽然开箱即用&#xff0c;但所有对话记录和文件都要经过第三方服务…...

golang.org/x/net WebSocket开发完全手册:实现实时双向通信

golang.org/x/net WebSocket开发完全手册&#xff1a;实现实时双向通信 【免费下载链接】net [mirror] Go supplementary network libraries 项目地址: https://gitcode.com/gh_mirrors/ne/net 在现代Web应用开发中&#xff0c;实时双向通信已成为提升用户体验的关键技术…...

《QGIS快速入门与应用基础》256:SVG格式:适合矢量图二次编辑

作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...

OpenClaw社交媒体管理:Gemma-3-12b-it自动回复评论与生成周报

OpenClaw社交媒体管理&#xff1a;Gemma-3-12b-it自动回复评论与生成周报 1. 为什么选择OpenClaw管理社交媒体 去年运营个人技术账号时&#xff0c;我每天要花1小时手动回复评论和整理周报。直到发现OpenClaw这个开源自动化框架&#xff0c;配合Gemma-3-12b-it模型&#xff0…...

基于合法无代码平台滥用的新型钓鱼攻击机理与防御体系研究

摘要 2026 年 3 月卡巴斯基实验室披露针对 Bubble.io 等正规无代码开发平台的恶意滥用钓鱼攻击&#xff0c;攻击者依托平台高信誉域名、SSL 证书与可视化开发能力&#xff0c;快速生成高仿真钓鱼页面&#xff0c;绕过传统邮件网关与终端检测&#xff0c;实现账号凭证、多因素认…...

工程实践100道 · 第一篇:模型上线与部署25道

工程实践100道 第一篇&#xff1a;模型上线与部署25道本篇覆盖机器学习模型从训练到上线的全流程&#xff0c;详解模型部署、在线服务、效果监控等面试常考点。1. 模型上线的基本流程是什么&#xff1f; 白话答案&#xff1a; 模型上线流程&#xff1a; 模型训练&#xff1a;离…...

打破设备壁垒:VR-Reversal实现3D内容自由视角全设备适配

打破设备壁垒&#xff1a;VR-Reversal实现3D内容自由视角全设备适配 【免费下载链接】VR-reversal VR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcode.com/gh_…...

智能家居设备变“聪明”的秘密:我是如何给ESP32摄像头加上本地人脸识别功能的

给ESP32摄像头装上“大脑”&#xff1a;我的本地人脸识别开发实战 去年夏天&#xff0c;我家门铃摄像头频繁误报的困扰让我萌生了一个想法——为什么不能让它像人类一样"认出"熟面孔&#xff1f;市面上的智能摄像头要么依赖云端计算导致延迟高&#xff0c;要么隐私保…...