Java编程-树的高度
来源:互联网 发布:linux查看端口监听 编辑:程序博客网 时间:2024/06/01 10:48
现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
输入描述:
输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号
输出描述:
输出树的高度,为一个整数
示例1
输入
50 10 21 31 4
输出
3
代码如下:
链接:https://www.nowcoder.com/questionTerminal/4faa2d4849fa4627aa6d32a2e50b5b25来源:牛客网import
java.util.HashMap;
import
java.util.Scanner;
public
class
Main {
public
static
void
main(String[] args) {
Scanner scanner =
new
Scanner(System.in);
int
n = scanner.nextInt();
String result =
""
;
// 树的深度Map、节点孩子数量Map
HashMap<Integer, Integer> deep =
new
HashMap<>();
HashMap<Integer, Integer> childNum =
new
HashMap<>();
deep.put(
0
,
1
);
childNum.put(
0
,
0
);
// 默认树的深度为1
int
max =
1
;
int
myDeep =
0
;
for
(
int
i =
0
; i < n -
1
; i++) {
int
parent = scanner.nextInt();
int
num = scanner.nextInt();
// 不包含父节点或者孩子数目超过两个,则跳过
if
(!deep.containsKey(parent) || childNum.get(parent) >=
2
) {
continue
;
}
// 树的深度加一
myDeep = deep.get(parent) +
1
;
// 子节点和树的深度
deep.put(num, myDeep);
// 存父节点,其子节点的数量加一
childNum.put(parent, (childNum.get(parent) +
1
));
// 存子节点,其子节点数量为0
childNum.put(num,
0
);
if
(myDeep > max) {
max = myDeep;
}
}
System.out.println(max);
}
}
阅读全文
0 0
- Java编程-树的高度
- 编程题 求树的高度
- 2017 小米笔试题 编程题 求树的高度 Java代码实现
- 2017 小米笔试题 编程题 求树的高度 Java代码实现
- 2017 小米笔试题 编程题 求树的高度 Java代码实现
- 用java编程输出高度为n的等腰三角形
- 数的高度(java)
- 编程练习-二叉树(求二叉树的高度)
- java计算二叉树的高度以及叶节点个数
- 树的最小高度
- 树的高度
- 树的高度
- 树的高度
- 求树的高度
- 求树的高度
- 二叉树的高度
- 树的高度
- 求树的高度
- C语言32个关键词
- 凌云光科技笔试题
- zabbix 监控项
- Java中为什么float型最大值大于long型?
- Apache Ant自动化脚本入门教程及常用命令介绍
- Java编程-树的高度
- 我掌握的测试领域知识(持续更新)
- jQuery-强大的jQuery选择器 (详解)
- spring或者springmvc整合使用redis
- java内部类和静态内部类
- Java9 基于异步响应流的发布-订阅框架
- 了解 Quorum
- 七牛java抓取上传第三方资源
- Linux 内存使用情况检查