展开树中范围和的伪代码?

问题描述

所以我想实现一个功能: func rsum(根,左,右) 这个函数接受一个范围的值,然后在一个展开树中返回该树中所有键的总和。我希望它在 O(log n) 中工作。

我已经试过了:

 s = 0
    if self.root is None:
        return 0

    node = self.root
    if left <= node.value <= right:
        s += node.value
    if  node.value >left  and node.left is not None :
        self.root = node.left
        s += self.range_sum(left,right)
    if node.value < right and node.right is not None:
        self.root = node.right
        s += self.range_sum(left,right)
    return s

虽然它在 O(log n) 中不起作用,但有更好的方法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)