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

Day26-二叉树的最小深度

力扣链接

什么是最小深度,这个要理解一下:

  • 从根节点 1 到叶子节点 4 的路径是 1 -> 2 -> 4,路径长度为 3。

  • 从根节点 1 到叶子节点 5 的路径是 1 -> 3 -> 5,路径长度为 3。

  • 从根节点 1 到叶子节点 6 的路径是 1 -> 3 -> 6,路径长度为 3。

  • 从根节点 1 到叶子节点 4 (左子树) 的路径是 1 -> 2 -> 4,路径长度为 3。

  • 从根节点 1 到叶子节点 4 (右子树) 的路径是 1 -> 3 -> 6 -> 4,路径长度为 4。

  • 从根节点 1 到叶子节点 5 的路径是 1 -> 3 -> 5,路径长度为 3。

  • 从根节点 1 到叶子节点 3 的路径是 1 -> 2 -> 3,路径长度为 3。这个要注意一下不是1!

使用后序遍历+递归实现!

 int GetDepth(struct TreeNode* root){if(root == NULL) return 0;int LeftDepth = GetDepth(root->left); // 左int RightDepth = GetDepth(root->right); //右if(root->left == NULL && root->right != NULL){ //重点需要理解的地方,如果左子树为空,但是右子树不为空return 1+RightDepth;                       //那么最低点应该在右子树的孩子里面}if(root->right == NULL && root->left != NULL){return 1+LeftDepth;}    int result = 1 + (LeftDepth>RightDepth? RightDepth : LeftDepth);return result;}
int minDepth(struct TreeNode* root) {return GetDepth(root);
}

使用迭代法,层序遍历实现:

int minDepth(struct TreeNode* root) {if(root == NULL) return 0;int left = 0,right = 0,depth = 0;struct TreeNode* que[10000];que[right++] = root;while(left < right){int size = right - left;depth++;              //每到一层就加1for(int i =0;i<size;i++){struct TreeNode* node = que[left++];if(node->left) que[right++] = node->left;if(node->right) que[right++] = node->right;if(node->left == NULL && node->right == NULL){return depth;       //都遇到某一个节点是左右孩子为空的时候直接返回结果}}}return depth;
}

感觉模板还是挺耐用的,多动手练吧。

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

相关文章:

  • 【软考中级网络工程师】知识点之 RIP 协议
  • C++ 之 【模拟实现 优先级队列】
  • SQL 地理空间原理与实现
  • slice() 和 splice()
  • 信创及一次ORACLE到OB的信创迁移
  • 自由学习记录(76)
  • Python 的标准库 bisect 模块
  • 源码交易平台排行榜
  • 机器学习 决策树基本介绍
  • Mysql的MVCC是什么
  • HCIE-Datacom题库_07_设备【道题】
  • 《深入解析 Python 的 `*args` 和 `**kwargs`:从基础使用到高级应用》
  • 【数据结构】哈希表实现
  • 网关和BFF是如何演化的
  • uniapp 跨端开发
  • 基于Springboot+UniApp+Ai实现模拟面试小工具八:管理端基础功能实现
  • (论文速读)探索多模式大型语言模型的视觉缺陷
  • DeepSeek 论文夺冠,智谱开源 GLM-4.5,OpenAI 学习模式上线!| AI Weekly 7.28-8.3
  • 基于机器学习的Web应用漏洞分析与预测系统,使用django框架,三种机器学习模型
  • 深入探讨AI在测试领域的三大核心应用:自动化测试框架、智能缺陷检测和A/B测试优化,并通过代码示例、流程图和图表详细解析其实现原理和应用场景。
  • 关于Web前端安全防御之内容安全策略(CSP)
  • 知识蒸馏 - 基于KL散度的知识蒸馏 HelloWorld 示例 采用PyTorch 内置函数F.kl_div的实现方式
  • 【Linux系统】进程间通信:匿名管道
  • AI 时代的 IT 从业者:共生而非替代
  • 人声伴奏分离API:音乐智能处理的强大工具
  • Spring AI 项目实战(二十二):Spring Boot + AI +DeepSeek实现智能合同数据问答助手​(附完整源码)
  • 小白学OpenCV系列2-理解图像
  • MySQL--高可用MHA集群详解及演练
  • SelectDB数据库,新一代实时数据仓库的全面解析与应用
  • CICD--自动化部署--jinkins