当前位置: 代码迷 >> 综合 >> 问题 B: 树的高度
  详细解决方案

问题 B: 树的高度

热度:23   发布时间:2023-09-22 10:08:22.0

题目描述

一棵树有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;
}

注:并查集的思想

  相关解决方案