時間限制: 1 s
空間限制: 128000 kb
題目等級 : ** silver
給出乙個二叉樹,輸出它的最大寬度和高度。
輸入描述 input description
第一行乙個整數n。
下面n行每行有兩個數,對於第i行的兩個數,代表編號為i的節點所連線的兩個左右兒子的編號。如果沒有某個兒子為空,則為0。
輸出描述 output description
輸出共一行,輸出二叉樹的最大寬度和高度,用乙個空格隔開。
樣例輸入 sample input
2 34 5
0 00 0
0 0樣例輸出 sample output
2 3資料範圍及提示 data size & hint
n<16
預設第乙個是根節點
以輸入的次序為編號
2-n+1行指的是這個節點的左孩子和右孩子
注意:第二題有極端資料!
1
0 0
這題你們別想投機取巧了,給我老老實實搜尋!
點此展開
打遞迴就好。。
#include #include點選展開#include
using
namespace
std;
bool
flag;
int kd,gd,n,i,j,lc[17],rc[17],fa[17
];int xz(intb)}
void xy(inta)}
int getf(int
c)int
main()
int maxn=0
;
for (i = 1; i <= n; ++i)
maxn =max(maxn,h);
}xz(1);
xy(1);
if(flag)
cout
"<
else cout
"<
}
二叉樹的深度 二叉樹的深度 二叉樹最大寬度
題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 根節點加上左右子樹的最大深度就是樹的最大深度。如下 class solution ...
二叉樹最大距離
問題描述 給出一棵二叉樹,求二叉樹上最遠的兩個節點的距離 分析 最長距離即兩個節點間經過的路徑最長,可以把問題分解為每個節點的左子樹的最大深度與右子樹的最大深度之和的最大值,保留這個最大值並對比各節點的最大值即可得出 遞迴演算法如下 int max 0 int depth node root int...
最大搜尋二叉樹
本題考慮到用遞迴,即遞迴左子樹找到最大搜尋二叉樹的頭結點,遞迴右子樹找到最大搜尋二叉樹的頭結點,對於最大二叉搜尋子樹來說,我們要知道它的頭結點,最大的size 即搜尋二叉子樹的大小 搜尋二叉子樹的最小值,最大值。等於說我們在處理子問題時必須知道這四個引數。我們函式僅返回頭結點,其餘三個引數用全域性陣...