0%

26. 二叉树的最小深度

题目



解析

  1. 解析图:

  2. 首先,如果是Null,那么,便返回0
  3. 然后,看左子树深度和右子树的深度
  4. 接着,如果有左子树或者右子树的深度为0,那么返回另一个深度+1
  5. 最后,如果左右子树的深度都不为0,那么返回最小值+1

代码

1
2
3
4
5
6
7
8
9
int minDepth(TreeNode* root) {
if(!root)
return 0;
int leftNum = minDepth(root -> left);
int rightNum = minDepth(root -> right);
if(!leftNum || !rightNum)
return (leftNum + rightNum + 1);
return min(leftNum, rightNum) + 1;
}