计算范围内 BST 的总和
Calculate Sum of BST in a Range
谁能告诉我我的代码有什么问题。它的 returning 25 用于测试用例
给定一棵二叉搜索树的根节点,return所有节点的值在L和R之间(含)的值之和。
二叉搜索树保证具有唯一值。
输入:root = [10,5,15,3,7,null,18], L = 7, R = 15
输出:32
我的 output:25
class Solution:
def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:
self.sum1=0
self.traverse(root,L,R)
return self.sum1
def traverse(self,node,L,R):
if node:
if L<=node.val<=R:
self.sum1+=node.val
if L<node.val:
self.traverse(node.left,L,R)
if node.val<R:
self.traverse(node.right,L,R)
仅当当前 node.value
位于范围 l
和 r
之间时,您才调用 left child
和 right child
。即使 node.value
不在 l
和 r
之间,您也已调用它们。
因此,在 traverse()
方法中更改 if
块的 indentation
。
检查下面的代码。
class Solution:
def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:
self.sum1=0
self.traverse(root,L,R)
return self.sum1
def traverse(self,node,L,R):
if node:
if L<=node.val<=R:
self.sum1+=node.val
if L<node.val:
self.traverse(node.left,L,R)
if node.val<R:
self.traverse(node.right,L,R)
谁能告诉我我的代码有什么问题。它的 returning 25 用于测试用例 给定一棵二叉搜索树的根节点,return所有节点的值在L和R之间(含)的值之和。
二叉搜索树保证具有唯一值。 输入:root = [10,5,15,3,7,null,18], L = 7, R = 15 输出:32 我的 output:25
class Solution:
def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:
self.sum1=0
self.traverse(root,L,R)
return self.sum1
def traverse(self,node,L,R):
if node:
if L<=node.val<=R:
self.sum1+=node.val
if L<node.val:
self.traverse(node.left,L,R)
if node.val<R:
self.traverse(node.right,L,R)
仅当当前 node.value
位于范围 l
和 r
之间时,您才调用 left child
和 right child
。即使 node.value
不在 l
和 r
之间,您也已调用它们。
因此,在 traverse()
方法中更改 if
块的 indentation
。
检查下面的代码。
class Solution:
def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:
self.sum1=0
self.traverse(root,L,R)
return self.sum1
def traverse(self,node,L,R):
if node:
if L<=node.val<=R:
self.sum1+=node.val
if L<node.val:
self.traverse(node.left,L,R)
if node.val<R:
self.traverse(node.right,L,R)