我有一个编辑树(可以更改节点的值),它不是二叉树,我想将节点值的总和存储在父节点中。 即:
50
/ | \
10 25 15
| | \ | \
10 3 22 10 5
在编辑中我成功更改了所有层次结构,但初始化我没有成功,例如我只有最深级别的值(10 3 22 10 5),然后想从它开始。
最佳答案
我的策略是进行自上而下的遍历。叶节点仅返回其当前值。内部节点根据其子节点的总和重新计算。
function initialize(node) {
// internal nodes get their total from children
if (node.children.length > 0) {
node.value = 0;
for (var i = 0; i < node.children.length; i++) {
node.value += initialize(node.children[i]);
}
}
return node.value;
}
initialize(root);
关于javascript - 父节点值是其所有子节点的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30148347/