python - 在根值范围内添加数字会返回不正确的值
问题描述
我正在通过 LeetCode 工作,这个问题让我陷入困境。给我一个二叉搜索树的根节点,并要求我返回介于两者之间的所有值的L
总和R
:
例子:
Input: root = [10,5,15,3,7,null,18], L = 7, R = 15
Output: 32 (10+15+7)
这是我的尝试:
class Solution:
def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:
value = 0
if root.val >= L and root.val <= R:
value += root.val
return value
但是,这就是它返回的内容:
Your input [10,5,15,3,7,null,18] 7 15
Output 10
Expected 32
解决方案
你停在树的根部。递归地查看树。
尝试
class Solution:
def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:
if root is None or root.val < L or root.val > R:
return 0
return root.val + self.rangeSumBST(root.left, L, R) + self.rangeSumBST(root.right, L, R)
推荐阅读
- drake - 在运行时跟踪 time_step 并记录几何逻辑错误
- r - ggplot2,如何更改条形标签的位置或添加图例
- php - For 循环在 332 次迭代后停止传递变量 - 不知道为什么
- java - 执行 java 可执行文件 (.exe) 时如何获取 CMD 的目录
- azure-devops - Azure Pipelines 中的增量构建
- android - 是否可以在不访问设置的情况下启用服务通知?
- java - NewProxyCallableStatement 不能强制转换为 SQLServerCallableStatement
- node.js - 如何修复 React16.8 和 webpack4 应用程序无法加载
- powershell - (Date).ToString 不使用指定的分隔符
- python - 为精确召回曲线生成置信区间