Leetcode刷题记录——437. 路径总和 III

Leetcode刷题记录——437. 路径总和 III_第1张图片
递归 全局变量记录数目
用一个数组记录此前达到的所有结果值
每次都在以前的结果上 加上当前root的val
加完 如果右等于目标值的 全局变量+1
而最后还需要单独加入一个root的val元素再递归下一层
返回全局变量

class Solution:
    def __init__(self):
        self.res = 0
        self.target = 0
    def pathSum(self, root: TreeNode, sum: int) -> int:
        self.target = sum
        self.rec(root,[])
        return self.res
    def rec(self,root,lastres):
        if root == None:
            return 0
        else:
            for i in range(len(lastres)):
                lastres[i] += root.val
                if lastres[i] == self.target:
                    self.res += 1
            if root.val == self.target:
                self.res += 1
            self.rec(root.left,lastres+[root.val])
            self.rec(root.right,lastres+[root.val])

你可能感兴趣的:(leetcode,python编程技巧)