我对Python还是很陌生,我在这个NameError上停留了一段时间。我以为treeRecurse函数可能是语法错误,这就是为什么我无法正确调用该函数的原因。但是在这一点上,我真的迷路了。有人有什么想法吗?
代替def treeRecurse (node: TreeNode, ret, L: int, R: int):
,我尝试了def treeRecurse (node, ret, L, R):
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def treeRecurse (node: TreeNode, ret, L: int, R: int):
if node.val >= L & node.val <= R: ret.append(node.val)
if node.right != None: treeRecurse(node.right, ret, L, R)
if node.left != None: treeRecurse(node.left, ret, L, R)
def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:
ret = []
treeRecurse(root, ret, L, R)
return ret
treeRecurse
是类Solution
的方法。这有两个语法要求:
1)方法treeRecurse
应该具有参数self
作为第一个参数,即def treeRecurse (self, node: TreeNode, ret, L: int, R: int):
2)在递归调用期间,应像self.treeCurse
那样调用。