#include
int main ()
{
int a, b, n, m = 0;
int tree[1000] = {0}; /* 最大结点数+1 */
scanf("%d", &n);
while (n-- > 1) //根节点计算在节点个数内,就是用1,否则使用0
{
scanf("%d %d", &a, &b);
tree[b] = tree[a] + 1;
if (m < tree[b]) m = tree[b];
}
printf("%d", m + 1);
return 0;
}
思路为叶子的高度是父结点加一,记下最大的那个。
#include
int main () {
int a, b, n, m = 0;
int tree[1000] = {0}; /* 最大结点数+1 */
scanf("%d", &n);
while (scanf("%d%d", &a, &b) > 0) {
tree[b] = tree[a] + 1;
if (m < tree[b]) m = tree[b];
}
printf("%d", m + 1);
return 0;
}