问题 B: 树的高度
题目描述
一棵树有n个节点,其中1号节点为根节点。
输入
第一行是整数n,表示节点数
后面若干行,每行两个整数a b,表示b是a的子节点。
输出
求这棵树的高度(根节点为第1层)
样例输入 Copy
5 1 2 1 3 3 4 3 5
样例输出 Copy
3
代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 10000;
int n, d;
struct node{
int layer;
int data;
}BiTree[maxn];
int main(){
while(scanf("%d", &n)!=EOF){
BiTree[1].layer = 1;
for(int i=1; i<n; i++){
int a, b;
scanf("%d%d", &a, &b);
BiTree[b].layer = BiTree[a].layer+1;
}
int height = 0;
for(int i=0; i<maxn; i++){
if(BiTree[i].layer>height)
height = BiTree[i].layer;
}
printf("%d\n", height);
}
return 0;
}