二叉树的最小深度
来源:互联网 发布:游戏变速器源码 编辑:程序博客网 时间:2024/04/30 10:40
一、问题描述
给定一个二叉树,找出其最小深度。
给出一棵如下的二叉树:
1
/ \
2 3
/ \
4 5
这个二叉树的最小深度为 2
首先若根为空,则输出0,若左子树为空,右子树不为空,则最小深度为右子树的最小深度加1,若右子树不为空左子树为空,则最小深度为右子树的最小深度加1,若都不为空,则比较左子树的最小深度和右子树的最小深度大小,返回较小值。
三、我的代码
class Solution {
public:
/**
* @param root: The root of binary tree.
* @return: An integer
*/
int minDepth(TreeNode *root) {
int nl,nr;
if(root==NULL) return 0;
if(root->right==NULL&&root->left==NULL)
return 1;
if(root->right==NULL&&root->left!=NULL)
return minDepth(root->left)+1;
if(root->right!=NULL&&root->left==NULL)
return minDepth(root->right)+1;
nl=minDepth(root->left)+1;
nr=minDepth(root->right)+1;
return nl<nr?nl:nr;
}
};
四、我的感想
做这道题的时候我一开始考虑的太少,本想着像求最大深度一样就可以了,但是这道题还要分好几种情况,比较的时候和最大深度类似,以后要更细心才对。
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 为TabLayout添加角标的最简单方法
- Linux dd命令
- Ping程序
- postgresql上安装sysbench-0.5
- String的其他方法
- 二叉树的最小深度
- 5. Longest Palindromic Substring
- 图的遍历(BFS+DFS)
- Maven错误
- 安装 android studio创建工程运行报错 -- 常见的三个问题
- Mysql学习笔记(七):用MySQLWorkBench创建数据库和模型
- JVM监控与调优
- watch embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier.
- Codeforces 672A(implementation)