提问人: 提问时间:10/19/2023 更新时间:10/19/2023 访问量:22
Python BST Range Sum 函数未返回预期结果将使用局部变量
Python BST Range Sum Function Not Returning Expected Results Will Using Local Variable
问:
我目前正在开发一个 Python 函数,该函数应该计算给定范围内二叉搜索树 (BST) 中的值总和。但是,我的代码似乎没有按预期工作。我希望能得到一些关于可能出错的指导。
这是我正在使用的类的代码:Solution
class Solution:
def rangeSumBST(self, root, low: int, high: int) -> int:
def dfs(root):
if root is None:
return 0
c = 0
if low <= root.val <= high:
c += root.val
dfs(root.left)
dfs(root.right)
return c
return dfs(root)
这个想法是在 BST 上执行深度优先搜索 (DFS),如果它们落在给定范围 ( to ) 内,则将值添加到总和中。但是,它没有返回正确的结果。c
low
high
我试图调试此代码,但我无法弄清楚导致问题的原因。我的实现中是否遗漏了某些明显的东西,或者我的代码中是否存在导致错误结果的逻辑错误?
解决此问题的任何帮助或建议将不胜感激。提前致谢!
答:
0赞
blhsing
10/19/2023
#1
您的代码正在调用,但未对返回值执行任何操作。您应该将它们添加到总和中:dfs
class Solution:
def rangeSumBST(self, root, low: int, high: int) -> int:
def dfs(root):
if root is None:
return 0
c = dfs(root.left) + dfs(root.right)
if low <= root.val <= high:
c += root.val
return c
return dfs(root)
评论