现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
输入描述:
输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成, 下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号
输出描述:
输出树的高度,为一个整数
示例1
输入
5 0 1 0 2 1 3 1 4
输出
3
package cn.wywk.oa.hm;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Solution {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
//节点数
int node=scanner.nextInt();
System.out.println(deep(node));
}
/**
* 计算树的高度
* @param node
* @return
*/
public static int deep(int node){
if(node==0)
return 0;
if(node==1)
return 1;
Map<Integer, Integer> family=new HashMap<>();
int count=1;
for(int i=0;i<node-1;i++){
int son=scanner.nextInt();
int father=scanner.nextInt();
family.put(son, father);
}
for(Integer key:family.keySet()){
while(family.containsKey(key)){
count++;
key=family.get(key);
}
}
return count;
}
}