如何对二叉树的左节点求和 javascript
How to sum left nodes from binary tree javascript
我有一棵二叉树,我想对所有最左边的节点求和。
所以
2
/ \
7 5
/ \ / \
2 6 9
拿那棵树,我希望结果是 11,因为我想求和 2+7+2。
所以我尝试这样做:
function leftmostNodesSum(array) {
let sum = 0;
let currentNode = array[0];
let previousNode;
for (let i = 0; i < array.length; i++) {
if (i === currentNode * 2 + 1) {
previousNode = currentNode;
currentNode = array[i];
sum += previousNode;
}
}
return sum;
}
我不得不说我的数组采用“广度优先”格式,所以我的第一个节点在我的数组中的索引为 0,左侧节点为 2n + 1。
该数组看起来像这样:
[2, 7, 5, 2, 6, 0, 9]
数字0代表一个空节点。
我对此有点陌生,所以非常感谢你的帮助,有什么想法吗?
function leftmostNodesSum(array) {
let sum = 0;
let currentNode = 0;
for (let i = 0; i < array.length; i++) {
if (i === currentNode) {
sum += array[i];
currentNode = 2 * i + 1;
}
}
return sum;
}
我有一棵二叉树,我想对所有最左边的节点求和。 所以
2
/ \
7 5
/ \ / \
2 6 9
拿那棵树,我希望结果是 11,因为我想求和 2+7+2。
所以我尝试这样做:
function leftmostNodesSum(array) {
let sum = 0;
let currentNode = array[0];
let previousNode;
for (let i = 0; i < array.length; i++) {
if (i === currentNode * 2 + 1) {
previousNode = currentNode;
currentNode = array[i];
sum += previousNode;
}
}
return sum;
}
我不得不说我的数组采用“广度优先”格式,所以我的第一个节点在我的数组中的索引为 0,左侧节点为 2n + 1。
该数组看起来像这样:
[2, 7, 5, 2, 6, 0, 9]
数字0代表一个空节点。
我对此有点陌生,所以非常感谢你的帮助,有什么想法吗?
function leftmostNodesSum(array) {
let sum = 0;
let currentNode = 0;
for (let i = 0; i < array.length; i++) {
if (i === currentNode) {
sum += array[i];
currentNode = 2 * i + 1;
}
}
return sum;
}