1,求二叉树的最大高度:
int length(Node* root)
{
if(root == NULL)
return 0;
int leftLength = length(root->left);
int rightLength = length(root->right);
return (leftLength>=rightLength?(leftLength+1):(rightLength+1));
}
2,二叉树的最小高度:根节点到叶子节点的最短距离
int length(Node* root)
{
if(root == NULL)
return 0;
int leftLength = length(root->left);
int rightLength = length(root->right);
if(leftLength == 0 && rightLength == 0)
return leftLength+1;
if(leftLength == 0 && rightLength != 0)
return rightLength+1;
if(leftLength != 0 && rightLength == 0)
return leftLength+1;
if(leftLength != 0 && rightLength != 0)
return ((leftLength>=rightLength)?(leftLength+1):(rightLength+1));
}
3,销毁二叉树:
void Destory(Node* root)
{
Destory(root->left);
Destory(root->right);
delete root;
root = NULL;
}