在某些情况下,这是我正在处理的面试问题(摘自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)
要返回的值(与树的深度无关)为“无”。为什么不更改此值?不是通过引用传递的吗?