javascript - 父节点值是其所有子节点的总和

标签 javascript c# recursion tree

我有一个编辑树(可以更改节点的值),它不是二叉树,我想将节点值的总和存储在父节点中。 即:

   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/

相关文章:

c# - 401 的 ASP.NET WebApi 调用更改为 303 -> 400

java - 如何在 Java 中的任意数字组上创建笛卡尔积?

c++ - 查找数组中第二/第三小元素的递归方法

php - Isset post 和 break for 循环

JavaScript 多重继承和 instanceof

c# - 如何将字节数组(MD5 哈希)转换为字符串(36 个字符)?

c# - 如何显示消息框并从 aspx.cs 获取确认"is"或“否”

具有两个变量的Java递归

javascript - 使用 Gmail API 发送带附件的邮件 (PDF)

javascript - 数据表-当存在空值时获取总计