我刚刚编写了一个函数,用于在二叉树中搜索树中最接近的数字。这是我在下面写的。但是,似乎dfs函数中的self.res不会更新closeestValue函数中的self.res。我知道我可以将dfs写入最近的值来解决问题。但是我确实想编写两个独立的函数。有什么解决办法吗?谢谢!
class Solution:
"""
@param root: the given BST
@param target: the given target
@return: the value in the BST that is closest to the target
"""
def closestValue(self, root, target):
# write your code here
if root is None:
return None
self.res = root.val
self.dfs(root, target)
return self.res
def dfs(self, aroot, atarget):
if not aroot:
return None
if abs(aroot - atarget) < abs(self.res - atarget):
self.res = aroot.val
if atarget > aroot.val:
self.dfs(aroot.right, atarget)
else:
self.dfs(aroot.left, atarget)
return aroot.val
答案 0 :(得分:0)
问题解决了。调用res没问题。 abs(aroot-atarget)应该是abs(aroot.val-atarget)。