每日一题——求二叉树的高度,销毁二叉树

来源:互联网 发布:潘多拉优化中心 编辑:程序博客网 时间:2024/06/05 00:17

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;}