当前位置:   article > 正文

华为OD机试 - 悄悄话 - 广度优先搜索(Java 2024 D卷 100分)_给定一个二叉树,每个节点上站着一个人,节点数字表示父节点到该节点传递悄悄话需要

给定一个二叉树,每个节点上站着一个人,节点数字表示父节点到该节点传递悄悄话需要

一、题目描述

给定一个二叉树,每个节点上站一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。

初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节点上的人都接收到悄悄话花费的时间。

二、输入描述

给定二叉树

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

四、解题思路

  1. 使用 Scanner 和 Arrays.stream 从标准输入读取并转换成整数数组。
  2. 使用 LinkedList 作为队列来支持 BFS。
  3. 循环处理队列中的每个节点,计算其子节点的索引,更新子节点时间,并将子节点加入队列。
  4. 对于每个叶子节点,检查其计算得到的时间是否是目前已知的最大时间。

五、Java算法源码

public class
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/749560
    推荐阅读
    相关标签
      

    闽ICP备14008679号