一、二叉树的最大深度
int maxDepth(TreeNode *root)
{
if(root == NULL)
return 0;
int left = maxDepth(root->left)
int right = maxDepth(root->right)
return left>right ? (left+1 ): (right+1); //返回二者之中较大数
二、二叉树的最小深度
int minDepth(TreeNode * root)
{
if(root == nullptr) return 0;
if(root->left == nullptr) // 若左子树为空,则返回右子树的最小深度+1
{
return run(root->right)+1;
}
if(root->right == nullptr) // 若右子树为空,则返回左子树的最小深度+1
{
return run(root->left)+1;
}
// 左右子树都不为空时,取较小值
int leftDepth = run(root->left);
int rightDepth = run(root->right);
return (leftDepth<rightDepth)?(leftDepth+1):(rightDepth+1);
}