一、题目描述
给定一个二叉树,每个节点上站一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。
初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节点上的人都接收到悄悄话花费的时间。
二、输入描述
给定二叉树
0 9 20 -1 -1 15 7 -1 -1 -1 -1 3 2
注: -1 表示空节点
三、输出描述
返回所有节点都接收到悄悄话花费的时间
1、输入
0 9 20 -1 -1 15 15 7 -1 -1 -1 -1 3 2
2、输出
38
四、解题思路
- 使用 Scanner 和 Arrays.stream 从标准输入读取并转换成整数数组。
- 使用 LinkedList 作为队列来支持 BFS。
- 循环处理队列中的每个节点,计算其子节点的索引,更新子节点时间,并将子节点加入队列。
- 对于每个叶子节点,检查其计算得到的时间是否是目前已知的最大时间。
五、Java算法源码
public class