在python中递归更改布尔值

时间:2018-09-09 20:47:30

标签: python recursion recursive-backtracking

在某些情况下,这是我正在处理的面试问题(摘自https://leetcode.com/problems/path-sum/description/)。我现在意识到它的清除器只是从每个递归函数中返回一个布尔值,但是我仍然不明白为什么这不起作用:

class Solution:
    def hasPathSum(self, root, sum):
        result = None
        self.recurse(result, root, root.val, sum)
        return result
    def recurse(self, result, node, sub_sum, target):
        if sub_sum > target:
            return
        if sub_sum == target:
            result = True
            return
        if node.left:
            self.recurse(result, node.left, sub_sum+node.left.val, target)
        if node.right:
            self.recurse(result, node.right, sub_sum+node.right.val, target)

要返回的值(与树的深度无关)为“无”。为什么不更改此值?不是通过引用传递的吗?

0 个答案:

没有答案