小米面试题树的高度

来源:互联网 发布:手机当作网络摄像头 编辑:程序博客网 时间:2024/06/07 10:17

现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度 

输入描述:
输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号
输出描述:
输出树的高度,为一个整数
示例1

输入

50 10 21 31 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;    }}  



原创粉丝点击