gpt4 book ai didi

javascript - 如何使用递归对三个值求和 - Javascript

转载 作者:行者123 更新时间:2023-11-30 20:38:11 25 4
gpt4 key购买 nike

写一个函数,返回所有节点的总和,包括根节点

var nodes = {
value: 7,
left: { value: 1, left: null, right: null },
right: { value: 4, left: null, right: null }
};

考虑到这一点,结果应该等于 12。

sumTheTreeValues = root => {
console.log(root.value);
if (root.left != null) {
sumTheTreeValues(root.left);
}
if (root.right != null) {
sumTheTreeValues(root.right);
}
};

如果这段代码会记录

7
1
4

如何在不传递新参数的情况下返回这些数字的总和?

最佳答案

将左右节点值与当前值相加并返回:

var nodes = {
value: 7,
left: { value: 1, left: null, right: null },
right: { value: 4, left: null, right: null }
};

sumTheTreeValues = root => {
let value = root.value;

if (root.left != null) {
value += sumTheTreeValues(root.left);
}
if (root.right != null) {
value += sumTheTreeValues(root.right);
}

return value;
};

console.log(sumTheTreeValues(nodes));

您还可以将其缩短一点,因为 null 在添加到数字时会自动转换为 0:

var nodes = {
value: 7,
left: { value: 1, left: null, right: null },
right: { value: 4, left: null, right: null }
};

sumTheTreeValues = root => root.value +
(root.left && sumTheTreeValues(root.left)) +
(root.right && sumTheTreeValues(root.right));

console.log(sumTheTreeValues(nodes));

关于javascript - 如何使用递归对三个值求和 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49591327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com