【LeetCode面试经典150题】104. 二叉树的最大深度

一、题目

  • 104. 二叉树的最大深度 - 力扣(LeetCode)
  • 给定一个二叉树 root ,返回其最大深度。

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

二、思路

  1. 二叉树的题目就是递归,怎么递归呢?
  2. 要求的是最大深度,就是说可以递归的深入树的每一个枝干,每深入到一层就给计数器加一,最后返回最深的那次递归即可;
  3. 具体到代码中,二叉树有左右两个儿子,左右儿子又有自己的儿子,那递归思路就可以确定为应该利用左右儿子的特性;
  4. 具体看解法一

三、解法

解法一

class Solution {public int maxDepth(TreeNode root) {return root == null ? 0 : 1 + Math.max(maxDepth(root.left), maxDepth(root.right));}
}

解析:递归的题解从最深一层递归看起,如代码所示,最深一层递归即为目前的 root 指向某个叶子节点,其左右均为空,再进入一次递归时 root 就为空,返回 0 ,每次返回上一级计数就会加一,最后返回到根节点时,代表的是其左右子树的深度取Max,即为所求;

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

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

相关文章

EyeMock下载与使用教程

视频眼神修复直视镜头的AI具有极高的灵活性和适应性。它可以根据不同的拍摄环境和主播需求进行个性化设置,确保最佳的视觉呈现效果。在直播互动中,主播可能因为分神或疲劳而失去与观众的直视,这款工具能够迅速识别并修复这一问题,…

机器学习(七) ----------聚类(K-means)

目录 1 核心思想 2 K-means算法 2.1 算法概述 2.2 算法步骤 2.3 数学原理 2.4 ‘肘’方法确定K值 2.4.1 原理 2.4.2 步骤 2.4.3 代码实现 2.5 聚类评估方法 2.5.1 SC轮廓系数(Silhouette Coefficient) 计算方法 解读 注意事项 2.5.2 Cal…

刷代码随想录有感(77):回溯算法——含有重复元素的全排列

题干&#xff1a; 代码&#xff1a; class Solution { public:vector<int> tmp;vector<vector<int>> res;void backtracking(vector<int> nums, vector<int> used){if(tmp.size() nums.size()){res.push_back(tmp);return;}sort(nums.begin(),…

ubuntu22部署 vue 和 springboot项目

vue前端系统部署&#xff1a; 1.使用命令npm run build:prod&#xff08;构建生产环境&#xff09;进行打包&#xff0c;打包成功后&#xff0c;会在项目下看到dist文件夹 ps:也有可能是npm run build命令进行打包(具体看package.json中"build": "vue-cli-serv…

对安卓手机上损坏的 SD 卡进行故障排除:恢复提示和修复

概括 如果您总是在旅途中&#xff0c;那么您很可能每天都在使用 SD 卡。这些微小但功能强大的闪存已经变得和手机的内部存储一样有用。它们可以存储数据并移动您想要的任何数据类型&#xff0c;因为它们在 Android 设备上添加了额外的存储空间。不幸的是&#xff0c;他们可能会…

颠覆内容创作的未来

前言 在数字化浪潮下&#xff0c;人工智能技术的飞速发展已经渗透进我们生活的方方面面。其中&#xff0c;一项名为AI Generated Content&#xff08;ALGC&#xff09;的技术正以其独特的魅力引起公众及产业界的广泛关注。今天&#xff0c;就让我们一起来深入了解一下这项技术…

网络协议——有状态协议和无状态协议

一、有状态协议 1、介绍 有状态协议&#xff08;stateful protocol&#xff09;是指在通信过程中能够维护和管理会话状态信息的协议。这种协议可以记住先前的交互信息&#xff0c;从而在后续的请求中利用这些信息来提供更有针对性和连续性的服务。 2、特点 会话管理&#x…

四天学会JS高阶(学好vue的关键)——深入面向对象(理论+实战)(第三天)

***本章面试使用居多* 理论篇**一、编程思想 1.1 面向过程 JS 前端居多 按照步骤 性能高 适合跟硬件关系很紧密 没有面向对象易维护易复用易扩展 1.2 面向对象 java典型 按照功能&#xff0c;把事务分别成一个个对象&#xff0c;对象之间分工合作 比较灵活 适合多人合作的…

python绘制多级饼图(分层饼图)

python绘制多级饼图&#xff08;分层饼图&#xff09; 介绍效果代码 介绍 多级饼图展示了数据的层次结构&#xff0c;其中每个级别表示数据的一个层次。我们可以使用matplotlib绘制多级饼图。 效果 代码 import matplotlib.pyplot as plt# 示例数据 outer_labels [Category…

css卡片横线100%宽度

所需样式: 横线不用border, 用单独一个div, 这样就不会影响父组件的padding <div class"pumpDetailView"><div class"pump_title_name"><span>{{ pumpInfo.pointname }}</span><divclass"point_state":style"…

Python的基本使用(numpy、pandas、matplotlib)

numpy、pandas、matplotlib 1. numpy numpy&#xff08;Numerical Python 的简称&#xff09;是 Python 语言的一个扩展程序库&#xff0c;支持大量的维度数组与矩阵运算&#xff0c;此外也针对数组运算提供大量的数学函数库。它的主要特点是&#xff1a; N维数组对象&#x…

MPC源码解读及路径跟踪demo

一、前言 上篇文章对MPC原理进行了推导&#xff0c;这篇文章对网上开源代码进行解读及实现路径跟踪demo。 分享一段心灵鸡汤&#xff1a; 最近在读的一本书《杀死一只知更鸟》&#xff0c;里面有这样一段话引起了我的共鸣&#xff1a;”我想让你见识一下什么是真正的勇敢&…

JSON转kotlin数据类的在线工具

toc 以下几个在线工具来将JSON转换为Kotlin数据类&#xff1a; ## 1. **Quicktype** (app.quicktype.io/#lkt)&#xff1a;这是一个在线工具&#xff0c;可以将JSON数据转换为多种编程语言的数据类型&#xff0c;包括Kotlin。您可以将JSON数据复制到Quicktype中&#xff0c;…

html 字体设置 (web端字体设置)

windows自带的字体是有版权的&#xff0c;包括微软雅黑&#xff08;方正&#xff09;、宋体&#xff08;中易&#xff09;、黑体&#xff08;中易&#xff09;等 版权算是个大坑&#xff0c;所谓为了避免版权问题&#xff0c;全部使用开源字体即可 我这里选择的是思源宋体&…

nodejs 与 npm 版本对应关系

官方地址&#xff1a;https://nodejs.org/en/about/previous-releases

fastadmin接口输出图片 自动拼接网站URL

先自定义常量 1.文件接口路径 修改核心文件 application\common\controller\Api.php/*** 构造方法* access public* param Request $request Request 对象*/public function __construct(Request $request null){$this->request is_null($request) ? Request::instance…

C++容器之无序多集(std::unordered_multiset)

目录 1 概述2 使用实例3 接口使用3.1 construct3.2 assigns3.3 iterators3.4 capacity3.5 find3.6 count3.7 equal_range3.8 emplace3.9 emplace_hint3.10 insert3.11 erase3.12 clear3.13 swap3.14 bucket_count3.15 max_bucket_count3.16 bucket_size3.17 bucket3.18 load_fa…

C++|设计模式(四)|代理模式

代理模式属于结构型设计模式&#xff0c;并不关注与对象的产生&#xff0c;而是类和对象功能的使用&#xff1b; 该类模设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。 比如说我们想要访问某公司的老板&#xff0c;其实不可能是直接…

全栈式数据统计:SqlAlchemy怎样连接MsSql Server获取视图列表

1.源代码 #-----------获取数据库视图列表----------------------------- # -------密码含特殊字符使用 from urllib.parse import quote_plus as urlquotefrom sqlalchemy import create_engine, MetaData, inspect# 替换为你的数据库连接字符串 DRIVER "ODBC Driver 1…

c++的查漏补缺 1、函数指针

今天写链表的插入排序时遇到了一个问题 void InsertionSortList(ListNode* head, int n){if (!head||!head->next) return nullptr;auto dummy new ListNode(-1);dummy->next head;auto pre head;auto cur head->next;while (cur ! NULL){auto tmp dummy;if (pre…