题目描述
一棵树有n个结点,结点编号为1~n,其中1号结点为根结点,根结点的深度为1,请问树的高度是多少。
输入
第一行是整数n,表示结点数。(1≤n≤100)
后面若干行,每行两个整数a b,表示b是a的子结点。
本题测试数据保证所有结点能构建为一棵树。
输出
求这棵树的高度
样例输入
5 1 2 1 3 3 4 3 5
样例输出
3
参考代码:
#include<bits/stdc++.h>
using namespace std;
int n,x[105],y[105],a[105],maxn;
int f(int x,int s){
s++;
if(a[x]==0)
return s;
return f(a[x],s);
}
int main(){
cin>>n;
for(int i=1;i<n;i++){
cin>>x[i]>>y[i];
a[y[i]]=x[i];
}
for(int i=1;i<n;i++)
maxn=max(maxn,f(a[y[i]],1));
cout<<maxn;
return 0;
}