二叉树的最小深度
题目描述
给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明:叶子节点是指没有子节点的节点。
解题思路
这道题目相比于最大深度思路上有点绕,我们必须在递归的时候遇到叶子节点才开始计数,否则就继续向下访问,对于左右子树只有一个的情况下,我们直接取存在的子树的最小深度加一。
题解
class Solution {
public:
int minDepth(TreeNode* root) {
if (root == NULL) return 0;
if (root->left == NULL && root->right != NULL) {
return 1 + minDepth(root->right);
}
if (root->left != NULL && root->right == NULL) {
return 1 + minDepth(root->left);
}
return 1 + min(minDepth(root->left), minDepth(root->right));
}
};
2077

被折叠的 条评论
为什么被折叠?



