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
输入输出示例仅供调试,后台判题数据一般不包含示例
输入
0 9 20 -1 -1 15 7 -1 -1 -1 -1 3 2
输出
38
? ? ? ? 递归遍历即可得到答案
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?