求二叉树的最大深度和最小深度

2017-07-17  本文已影响0人  VanessaC

最大深度:

nt maxDepth(TreeNode* root) {

if(root == NULL)

return 0;

int left_length = maxDepth(root->left)+1;

int right_length = maxDepth(root->right)+1;

return left_length>right_length?left_length:right_length;

}

最小深度:

int minDepth(TreeNode*root) 

{

if(root==nullptr)

return0;//判断左子树或右子树是否为空//若左子树为空,则返回右子树的深度,反之返回左子树的深度

if(root->left==nullptr)

return   minDepth(root->right)+1;

if(root->right==nullptr)

return  minDepth(root->left)+1;//如果都不为空,则返回左子树和右子树深度的最小值

int leftDepth=minDepth(root->left)+1;

int rightDepth=minDepth(root->right)+1;

return leftDepth<rightDepth?leftDepth:rightDepth;

}

上一篇 下一篇

猜你喜欢

热点阅读