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.
分析
获取二叉树的最小深度,即最近的叶子节点的高度。由于存在子树为空需要舍弃的情况,因此先判断子树为空的话,返回另一子树的高度,否则返回两个子树的最低高度。
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
int minDepth(struct TreeNode* root) {
if(root==NULL)
return 0;
if(root->left==NULL&&root->right==NULL)
return 1;
int leftDepth=1+minDepth(root->left);
int rightDepth=1+minDepth(root->right);
if(leftDepth==1)
return rightDepth;
if(rightDepth==1)
return leftDepth;
if(leftDepth>rightDepth)
return rightDepth;
else return leftDepth;
}