给定一个二叉树,每个节点上站一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。
初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节点上的人都接收到悄悄话花费的时间。
给定二叉树
0 9 20 -1 -1 15 7 -1 -1 -1 -1 3 2
注:-1表示空节点
返回所有节点都接收到悄悄话花费的时间
38
输出 | 38 |
说明 | 无 |
from collections import deque
# 读取一行输入并将其转换为整数列表
# 列表中的每个元素代表从父节点到当前节点的时间
whisper_times = list(map(int, input().split()))
# 记录最后一个节点接收悄悄话的时间
max_time = 0
# 使用队列来进行二叉树的层次遍历
node_queue = deque([0]) # 将根节点索引0加入队列
# 当队列不为空时,继续遍历
while node_queue:
# 从队列中取出一个节点索引
parent_node_index = node_queue.popleft()
# 计算左子节点索引
left_child_index = 2 * parent