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

二叉树最小深度解题思路

题目:

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

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明:叶子节点是指没有子节点的节点。

示例 1:

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

示例 2:

输入:root = [2,null,3,null,4,null,5,null,6]
输出:5

提示:

  • 树中节点数的范围在 [0, 105] 内
  • -1000 <= Node.val <= 1000

思路:

分类讨论:

1.左右子树都为空 返回1

2.左右子树有一个为空 返回深度(其中一个深度为0)加一

3.左右子树都不为空 返回最小深度加一

代码:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
int minDepth(struct TreeNode* root) {if(root == NULL){return 0;}// 左右子树都为空 返回1if(root -> left == NULL && root -> right == NULL){return 1;}int l_depth = minDepth(root -> left);int r_depth = minDepth(root -> right);//左右子树有一个为空 返回深度加一(因为其中一个深度为0,可以直接返回l_depth + r_depth + 1)if(root -> left == NULL || root -> right == NULL){return l_depth + r_depth + 1;}//左右子树都不为空 返回最小深度加一if(l_depth <= r_depth){return l_depth + 1;}else{return r_depth + 1;}
}

总结:

注:最小深度是从根节点到最近叶子节点的最短路径上的节点数量,所以要考虑左右子树有一个为空的情况,不能直接返回0;

http://www.dtcms.com/a/561718.html

相关文章:

  • 网站建设与开发 期末作品公司网站更换域名流程
  • 佛山网站建设在哪班级优化大师手机版下载
  • 如何在VScode环境下使用git进行版本控制,并上传到gitee远程仓库
  • 个人网站开发项目报告数据库营销
  • 自适应网站有哪些标签在线设计平台
  • 达梦数据库配置SSL通信加密
  • 【STL】set、multiset、unordered_set、unordered_multiset 的区别
  • HTTP 协议和 MQTT 协议的区别
  • 景区门户网站建设ui设计可以在ipad上面做嘛?
  • 2025年江西省职业院校技能大赛高职组“区块链技术应用”竞赛第六套任务书解析答案
  • 巴中房产网站建设推广网站发布文章
  • 北京网站建设价钱莱芜金点子信息港招聘
  • 摄影入门学习笔记
  • 网站设置怎么调济南网站建设方案书范文
  • 服务器怎么放网站吗国家商标免费查询入口
  • iOS八股文之 组件化
  • 系统规划与管理师 论文范文
  • visual studio做的网站商品推广软文800字
  • 个人网站推广方法小型的游戏网站怎么做
  • Photoshop - Photoshop 工具栏(22)单行选框工具
  • 郑州网站设计见效快服装设计网站有哪些
  • 第一章:从零开始构建你的第一个C#/.NET应用程序
  • 【51单片机】【protues仿真】基于51单片机波形发生器系统
  • Debug —— 本地Mysql数据迁移到Docker的Mysql容器中,使用创建容器时的正确密码登录失败
  • Mesh Wi-Fi网络技术
  • SpringBoot的yaml配置文件,热部署
  • 我网站正在建设中wordpress 403
  • 【深度学习】超参数调整(Hyperparameter Tuning)
  • .net 网站开发教程wordpress阿里云oss插件
  • 【Linux】多路转接epoll