資料結構——求二叉樹高度
阿新 • • 發佈:2018-11-21
這個題。。。有點迷。。。
首先注意題幹,人家讓你寫的是Getheight函式,那個構建樹那個函式 是被忽略掉不需要去寫的,一開始還在為怎麼去構建這個樹想了半天。。。。
裁判測試程式樣例:
#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; } /* 你的程式碼將被嵌在這裡 */
題目解法:簡單的遞迴,遍歷每一個分支,遍歷次數最多的那個分支加一就是最大的層數
直接給出AC程式碼:
int GetHeight(BinTree BT)
{
int len1,len2;
if(BT==NULL) return 0;
len1=GetHeight(BT->Left);
len2=GetHeight(BT->Right);
if(len1>len2) return len1+1;
else return len2+1;
}