Leetcode-111. 二叉树的最小深度

题目链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/

解法1:递归

判断每个节点左右节点

1.若没有左右子树,则这是个叶子节点返回其高度值

2.若没有左子树,返回右子树的高度值

3.若没有右子树,返回左子树的高度值

4.若左右子树都有,返回左右子树的较少值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
int minDepth(TreeNode* root) {
if(root==NULL)
return 0;
return low(root,0);
}
int low(TreeNode *root,int lows)
{
if(root->left==NULL&&root->right==NULL)
return lows+1;
if(root->left==NULL)
return low(root->right,lows+1);
if(root->right==NULL)
return low(root->left,lows+1);
return min(low(root->left,lows+1),low(root->right,lows+1));
}
};