現在有一棵合法的二叉樹,樹的節點都是用數字表示,現在給定這棵樹上所有的父子關係,求這棵樹的高度
阿新 • • 發佈:2018-12-07
題目描述
現在有一棵合法的二叉樹,樹的節點都是用數字表示,現在給定這棵樹上所有的父子關係,求這棵樹的高度
輸入描述:
輸入的第一行表示節點的個數n(1 ≤ n ≤ 1000,節點的編號為0到n-1)組成, 下面是n-1行,每行有兩個整數,第一個數表示父節點的編號,第二個數表示子節點的編號
輸出描述:
輸出樹的高度,為一個整數
示例1
輸入
5
0 1
0 2
1 3
1 4
輸出
3
#include<iostream> #include<vector> using namespace std; int main() { int n; while(cin >> n) { int h=1,f,c,temp;//h代表最總高度,f代表父節點索引,c代表子節點索引,temp代表臨時高度 vector<int> nodeH(1000,0);//節點高度 vector<int> cNum(1000,0);//記錄節點孩子點的數量 bool isFather = true; while(n--) { cin >> f >> c; if(isFather) { nodeH[f] = 1; isFather = false; } if(nodeH[f] == 0 || cNum[f] == 2) continue; cNum[f] += 1; temp = nodeH[f] + 1; nodeH[c] = temp; if(temp > h) h = temp; } cout << h; } return 0; }