Python中类和函数的参数使用问题

时间:2019-02-25 01:01:51

标签: python-3.x

我刚刚编写了一个函数,用于在二叉树中搜索树中最接近的数字。这是我在下面写的。但是,似乎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

1 个答案:

答案 0 :(得分:0)

问题解决了。调用res没问题。 abs(aroot-atarget)应该是abs(aroot.val-atarget)。