计算二叉树层高
计算二叉树层高

计算二叉树层高

6-1 求二叉树高度

分数 20

全屏浏览题目

切换布局

作者 陈越

单位 浙江大学

本题要求给定二叉树的高度。

函数接口定义:

int GetHeight( BinTree BT );

其中BinTree结构定义如下:

typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
    ElementType Data;
    BinTree Left;
    BinTree Right;
};

要求函数返回给定二叉树BT的高度值。

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>

typedef char ElementType;
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
    ElementType Data;
    BinTree Left;
    BinTree Right;
};

BinTree CreatBinTree(); /* 实现细节忽略 */
int GetHeight( BinTree BT );

int main()
{
    BinTree BT = CreatBinTree();
    printf("%d\n", GetHeight(BT));
    return 0;
}
/* 你的代码将被嵌在这里 */

输出样例(对于图中给出的树):

4

代码:

//只需比较左右子树高度,讲树的遍历简化成最基础的根节点高度计算
int GetHeight( BinTree BT)
{
    
    if (BT == NULL)
    {
        return 0;
    }else{
        int height_l = GetHeight(BT -> Left);
        int height_r = GetHeight(BT -> Right);
        int max_height = (height_l>=height_r?height_l:height_r) + 1;
        return max_height;
    }
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注