zoukankan      html  css  js  c++  java
  • 由整数对(父节点和子节点的关系)组成的二叉树的高度问题

    问题描述:

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

    输入的第一行表示节点个数为n,节点的编号为0到n-1组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号

    输出树的高度,为一个整数。

    样例输入:
    5
    0 1
    0 2
    1 3
    1 4

    样例输出: 3

    解答思路:

    创建一个map<节点,所在的层>,那么map的values中的最大值即为二叉树的高度。

    import java.util.*;
    public class Main {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    while (in.hasNextInt()) {
    Map<Integer,Integer> map = new HashMap<>();
    int n = in.nextInt();
    for (int i = 0; i<n-1; i++){
    int a = in.nextInt();
    int b = in.nextInt();
    if (map.containsKey(a)){
    map.put(b,map.get(a)+1);
    }else {
    map.put(a,1);
    map.put(b,2);
    }
    }
    Collection<Integer> values = map.values();
    int max = 0;
    for (int value : values){
    if (value>0){
    max = value;
    }
    }
    System.out.println(max);
    }
    }
    }


    ps:不知这种思路是否正确呢?笔试完了才想出来...
  • 相关阅读:
    新的起点,虽半步即天涯
    自定义函数
    冒泡排序 数字去重
    for 循环练习题
    for 循环练习题(2)
    for 循环 乘法口诀表
    js基础标签用法
    网页格式布局 流式布局
    样式表属性
    框架
  • 原文地址:https://www.cnblogs.com/weilunhui/p/5901707.html
Copyright © 2011-2022 走看看