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;
}
本文介绍了一种计算二叉树最大高度和最小高度的方法,并提供了销毁二叉树的具体实现。通过递归的方式,算法能够高效地遍历树结构并进行所需的操作。
4921

被折叠的 条评论
为什么被折叠?



