二叉树的最小深度
来源:互联网 发布:厦门市公安局网络公章 编辑:程序博客网 时间:2024/04/30 08:15
二叉树的最小深度
问题描述:
给出一棵如下的二叉树:
1
/ \
2 3
/ \
4 5
这个二叉树的最小深度为 2
解题思路:
用递归算法,分别遍历根结点的左子树和右子树,每递归一次,结点到根结点的距离加一。递归完成后,返回叶子结点到根结点的最小距离。需要注意的是,根结点只有右子树而没有左子树时,二叉树的最小深度不为0.这时,需要用递归算法遍历根结点的右子树,与上述方法一致;同理可得根结点只有左子树的情况。
代码实现:
class Solution {
public:
/**
* @param root: The root of binary tree.
* @return: An integer
*/
int minDepth(TreeNode *root) {
// write your code here
int p,q;
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;
}
p=minDepth(root->left)+1;
q=minDepth(root->right)+1;
return p>q?q:p;
}
};
A题感悟:
自己对递归算法依旧理解不透彻,在敲代码的过程中走了许多弯路。二叉树的最大深度与这道题相比较的话,这道题较难,两者的基本思路是一致的,但是需要注意不同之处。
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- Time Series Forecasting with the Long Short-Term Memory Network in Python
- First Unique Character in a String问题及解法
- mysql数据库数据同步
- hibernate中的N+1问题
- poj 1125 Stockbroker Grapevine (Floyd)
- 二叉树的最小深度
- 快速幂小trick
- 一种简单的单链表逆序、反转的方法
- 用优雅的方式重装Windows 10不可使用的应用程序
- Array对象
- hdu1754 I Hate It
- 自定义注解开发
- 二叉树的最小深度
- connect & send 在三次握手过程中的有趣问题