题目
Given a binary tree, find its minimum depth.
The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
分析
该问题是判断根节点到叶子结点的最小深度。
不同于判断最大深度,当根节点的其中一个子节点为NULL的时候,不能用min(minDepth(root->left),minDepth(root->right)),因为其中一个minDepth 为0
所以要加一个判断
实现
class Solution {
public:
int minDepth(TreeNode* root) {
if(root == NULL)
return 0;
if(!root->left && !root->right)
return 1;
if(!root->left)
return 1+minDepth(root->right);
if(!root->right)
return 1+minDepth(root->left);
return min(minDepth(root->left),minDepth(root->right))+1;
}
};