题目描述
一棵树有n个节点,其中1号节点为根节点。
输入
第一行是整数n,表示节点数
后面若干行,每行两个整数a b,表示b是a的子节点。
输出
求这棵树的高度(根节点为第1层)
样例输入
5 1 2 1 3 3 4 3 5
样例输出
3
#include<stdio.h>
int father[10000]={0};
int main(){int n;while(scanf("%d",&n)!=EOF){int f,s;father[1]=1;for(int i=0;i<n-1;i++){scanf("%d %d",&f,&s);if(i!=n-2)getchar();father[s]=f;}int max=1,j;for(int i=0;i<n;i++){int temp=1;j=i;while(father[j]!=j){j=father[j];temp++; }if(temp>max)max=temp;}printf("%d\n",max);}return 0;
}
注:并查集的思想