题目描述:

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

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

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

示例:

给定二叉树 [3,9,20,null,null,15,7],

3
/ \
9 20
/ \
15 7
返回它的最小深度  2.

思路分析:

一开始的思路是直接求二叉树的最小深度,后来发现题目限定了必须是到叶结点的路径长度最短。所以需要判断当前结点是否是叶结点。判断若左子树为空,则返回右子树的到叶子结点的最短路径;否则返回左子树到叶结点的最短路径。

代码:

 /**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int height(TreeNode* root)
{
if(root == nullptr)
return ;
if(root->left==nullptr)
return height(root->right)+;
if(root->right == nullptr)
return height(root->left)+;
int l = height(root->left);
int r = height(root->right);
return min(l,r)+;
}
int minDepth(TreeNode* root) {
if(root == nullptr)
return ;
return height(root);
}
};

最新文章

  1. python习题 (1):login
  2. CentOS6.5上Oracle11gR2静默安装
  3. kinect driver install (ubuntu 14.04 & ros-indigo)
  4. sys.dm_db_wait_stats
  5. Python for Informatics 第11章 正则表达式三(译)
  6. unity 脚本(自定义组件)的事件触发关系
  7. Codeforces Round #188 (Div. 2) A. Even Odds 水题
  8. HTML标签<b>与<strong>以及<i>与<em>的区别
  9. 时空分割的画面--用xcode命令行回忆turbo c
  10. 百度地图点聚合MarkerClusterer,性能优化
  11. 字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法)
  12. find的用法
  13. Navicat连接报错:cannot load OCI DLL,126
  14. 浅析Unity中的Enlighten与混合光照
  15. GeoJSON C#判断某一点是否在某一区域范围之内
  16. thinkPHP5扩展workerman
  17. 跨站请求伪造 | ajax
  18. Robot Framework - 3 - 测试库API
  19. LeetCode算法题-Add Binary(Java实现)
  20. css瀏覽器私有前綴名

热门文章

  1. MVC+Ninject+三层架构+代码生成 -- 总结(六、邏輯層)
  2. 初识Markdown
  3. 为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了
  4. 华为方舟编译器 下载 和 LiteOS Studio Setup 2019-04-16.exe SDK下载
  5. error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4,该符号在函数 "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D
  6. 6 Linux用户和用户组管理
  7. logger(二)logback简介及其实现原理
  8. python打印带颜色字体
  9. SSH Weak Encryption Algorithms Supported
  10. 【Spring Cloud】Spring Cloud之自定义@SpringCloudProfile注解实现@Profile注解的功能