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

二叉树的最大深度

问题描述:

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

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

示例 1:

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

示例 2:

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

提示:

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

解题思路:

本次可以采用分治思想解决,如果二叉树为空,就返回0,若不为空,利用递归返回左子树与右子树深度最大的+1即可。

注意尽量不要用以下代码,此时代码效率太低,每次进行递归之后,又重复进行相同的递归

int maxDepth(struct TreeNode* root)
{if (root == NULL)return 0;int leftDepth = maxDepth(root->left);int rightDepth = maxDepth(root->right);return maxDepth(root->left) > maxDepth(root->right) ? maxDepth(root->left)+1 : maxDepth(root->right) + 1;
}

可以将递归得到的值存起来会大大提高效率。 代码如下:

int maxDepth(struct TreeNode* root)
{if (root == NULL)return 0;int leftDepth = maxDepth(root->left);int rightDepth = maxDepth(root->right);return leftDepth > rightDepth ? leftDepth + 1 : rightDepth + 1;
}

http://www.lryc.cn/news/258664.html

相关文章:

  • nginx配置正向代理支持https
  • 奥比中光 Femto Bolt相机ROS配置
  • scala表达式
  • uniapp,点击选中并改变颜色,第二次点击取消选中状态
  • mmyolo的bbox_loss和检测bbox都是空
  • Linux——基本指令(二)
  • 渲染农场对工业产品渲染带来的意义与优势?
  • 产品入门第二讲:Axure产品元件库的使用
  • (第7天)Linux 静默安装单机 Oracle 19C 数据库
  • 智能优化算法应用:基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 数据挖掘目标(Kaggle Titanic 生存测试)
  • 【Vue】router.push用法实现路由跳转
  • 设计原则 | 接口隔离原则
  • maui 调用文心一言开发的聊天APP 3
  • 鸿蒙开发 - ohpm安装第三方库
  • [C++] new和delete
  • OpenVINS学习2——VIRAL数据集eee01.bag运行
  • jemeter,断言:响应断言、Json断言
  • 【vue实战项目】通用管理系统:信息列表,信息的编辑和删除
  • 基于FPGA的视频接口之高速IO(光纤)
  • HTML实现页面
  • 回归预测 | MATLAB实现IWOA-LSTM改进鲸鱼算法算法优化长短期记忆神经网络的数据回归预测(多指标,多图)
  • 鸿蒙开发之状态管理@State
  • redis基本用法学习(主要数据类型)
  • 低代码:美味膳食或垃圾食品
  • 设计模式—观察者模式
  • Java_EasyExcel_导入_导出Java-js
  • 循环神经网络-RNN记忆能力实验 [HBU]
  • P1044 [NOIP2003 普及组] 栈——卡特兰数
  • 9:00面试,9:06就出来了,问的问题有点变态。。。