题目链接: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)); } };
|