题解 | #二叉树中和为某一值的路径(一)#
二叉树中和为某一值的路径(一)
https://www.nowcoder.com/practice/508378c0823c423baa723ce448cbfd0c
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param root TreeNode类 # @param sum int整型 # @return bool布尔型 # class Solution: # temp 记录的是当前路径下累计的值 # res 在访问到根节点时,形成了一条路径,用res记录这条路径的值 temp = 0 res = [] def DLR(self, this : TreeNode): if this: # 先访问当前节点,把当前节点的值加入到当前路径值temp中 self.temp += this.val if not(this.left) and not(this.right): self.res.append(self.temp) # 递归访问孩子 self.DLR(this.left) self.DLR(this.right) # 代码运行到这里时,相当于已经把该节点的孩子都访问完了,需要将temp减去this.val self.temp = self.temp - this.val def hasPathSum(self , root: TreeNode, sum: int) -> bool: # write code here self.DLR(root) # 此时的res列表中保存的是各个路径的值 if sum in self.res: return True else: return False