Minimum Depth of Binary Tree
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.
分析
题目的意思是,给定一棵二叉树,求出它的最小深度。
* 对树的问题,大多都可以使用递归来解决 * 思路很清晰,编码也比较简单
Code
class Solution {
public:
/*
* 对树的问题,大多都可以使用递归来解决
* 思路很清晰,编码也比较简单
* */
int minDepth(TreeNode *root) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
if(!root) return 0;
int lChildDepth = 0, rChildDepth = 0;
if(root->left)
lChildDepth = minDepth(root->left);
if(root->right)
rChildDepth = minDepth(root->right);
if(root->left && root->right)
return 1 + std::min(lChildDepth, rChildDepth);
if(root->left)
return 1 + lChildDepth;
if(root->right)
return 1 + rChildDepth;
return 1;
}
};