题解 | #二叉树中和为某一值的路径(一)#
二叉树中和为某一值的路径(一)
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: def __init__(self): self.path = [] self.result = [] def hasPathSum(self , root: TreeNode, sum: int) -> bool: # write code here self.path.clear() self.result.clear() if not root: return self.result self.path.append(root.val) self.traversal(root, sum-root.val) return self.result def traversal(self, root, num): if not root.left and not root.right: if num == 0: self.result.append(self.path[:]) if root.left: self.path.append(root.left.val) self.traversal(root.left, num-root.left.val) self.path.pop() if root.right: self.path.append(root.right.val) self.traversal(root.right, num-root.right.val) self.path.pop()
使用两个全局变量记录所有可能的路径即可。其中path记录一条有效的路径,result则保存所有有效路径的集合。