【华为OD】统一考试C卷真题 100%通过: 传递悄悄话 二叉树遍历 JS源码实现

发布时间:2024年01月24日

C++源码实现:

【华为OD】统一考试C卷真题 100%通过: 传递悄悄话 二叉树遍历 C/C++实现-CSDN博客

Python源码实现:

【华为OD】统一考试C卷真题 100%通过: 传递悄悄话 二叉树遍历 python源码实现-CSDN博客

Java代码实现:

【华为OD】统一考试C卷真题 100%通过: 传递悄悄话 二叉树遍历 Java源码实现_华为od机试真题-传递悄悄话-CSDN博客?C语言代码实现:

【华为OD】统一考试C卷真题 100%通过: 传递悄悄话 二叉树遍历 C语言源码实现【思路+源码】-CSDN博客

题目描述:

给定一个二叉树,每个节点上站着一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。
初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节点上的人都接收到悄悄话花费的时间。

输入描述

给定二叉树?

0 9 20 -1 -1 15 7 -1 -1 -1 -1 3 2

注:-1表示空节点

输出描述

返回所有节点都接收到悄悄话花费的时间38

示例1

输入输出示例仅供调试,后台判题数据一般不包含示例

输入

0 9 20 -1 -1 15 7 -1 -1 -1 -1 3 2

输出

38

解题思路:

? ? ? ? 递归遍历即可得到答案

JS代码实现:

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

function talk(ps, p, idx, nds) {
  if (idx >= nds.length || nds[idx] === -1) {
    ps.push([...p]);
    return;
  }
  p.push(nds[idx]);
  talk(ps, [...p], idx * 2 + 1, nds);
  talk(ps, [...p], idx * 2 + 2, nds);
}

async function main() {
  const input = await readline();
  const values = input.split(" ").map(Number);
  const nodes = values;
  const ps = [];
  const path = [];
  talk(ps, path, 0, nodes);
  let maxValue = 0;
  for (let pp of ps) {
    let sum = 0;
    for (let p of pp) {
      sum += p;
    }
    if (sum > maxValue) {
      maxValue = sum;
    }
  }
  console.log(maxValue);
}

main();

? ? ?4 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?5?? ?|-----|
? ? ? ? ? ? ? +---+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? |
? ? ? ? ? ? ? | ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? |
? ? ? ? ? ? ? | ? | 3 ? ? ? ? ? ? ? ? ? ? ? 3 ? ? ? ? ? ? ? ? ? | ? ? |
? ? ? ? ? ? ? | ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? |
? ? ? ? ? ? ? | ? +---+ ? ? ? ? ? ? ? ? ? ----- ? ? ? ? ? ? ? ? | ? ? |
? ? ? ? ? ? ? | ? ? ? | ? ? ? ? ? ? ? ? ? | ? | ? ? ? ? ? ? ? ? | ? ? | ? ?|----|3
? ? ? ? ? ? 2 | ? ? ? | ? ? ? ? ? ? ? ? 2 | ? | ? ? 2 ? ? ? ? ? | ? ? | ? ?| ? ?|
? ? ? ? ? ? ? | ? ? ? | ? ? ? ? ? ? ? ? ? | ? | ? ? ? ? ? ? ? ? | ? ? | ? ?| ? ?|
? ? ? ? ? +---+ ? ? ? | ? ? ? ? ? ? ? ----+ ? | ? +---+ ? ? ? ? | ? ? | ? ?| ? ?|
? ? ? ? ? | ? ? ? ? ? | ? ? ? ? ? ? ? | ? ? ? | ? | ? | ? ? ? ? | ? ? | ? ?| ? ?|
? ? ? ? 1 | ? ? ? ? ? | 1 ? ? ? ? ? 1 | ? ? ? | 1 | ? | 1 ? ? ? | ? ? | ? ?| ? ?|
? ? ? ? ? | ? ? ? ? ? | ? ? ? ? ? ? ? | ? ? ? | ? | ? | ? ? ? ? | ? ? | ? ?| ? ?|
? ? ? +---+ ? ? ? ? ? +---+ ? ? ? +---+ ? ? ? +---+ ? +---+ ? ? | ? ? | ? ?| ? ?|
? ? ? | ? ? ? ? ? ? ? ? ? | ? ? ? | ? ? ? ? ? ? ? ? ? ? ? | ? ? | ? ? | ? ?| ? ?|
? ? 0 | ? ? ? ? ? ? ? ? ? | 0 ? 0 | ? ? ? ? ? ? ? ? ? ? ? | 0 ? | ? ? | ? ?| ? ?|
? ? ? | ? ? ? ? ? ? ? ? ? | ? ? ? | ? ? ? ? ? ? ? ? ? ? ? | ? ? | ? ? | ? ?| ? ?|
? +---+ ? ? ? ? ? ? ? ? ? +-------+ ? ? ? ? ? ? ? ? ? ? ? +---+ | ? ? +--- | ? ?|+
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ?
? ? 0 ? 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?10 ?11 ?12 ?13 ?14 ? 15 ?16 ?17 ?18?

文章来源:https://blog.csdn.net/mars1199/article/details/135749131
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。