给定一个二叉树和一个整数sum,二叉树的每个节点都是一个整数(正、负),找出能满足节点值相加等于sum的路径总数。
从根结点开始,一个一个节点地往下找。
从根结点开始往下找,sum值也一步一步往下减,直到找到为止。设“res”为全局变量,用于记录满足条件的路径总数。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def __init__(self):
self.res = 0
def pathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: int
"""
if not root:
return 0
self.helper(root, sum)
if root.left:
self.pathSum(root.left, sum)
if root.right:
self.pathSum(root.right, sum)
return self.res
def helper(self, root, nums):
if not root:
return self.res
if nums == root.val: #找到
self.res += 1
if root.left:
self.helper(root.left, nums-root.val)
if root.right:
self.helper(root.right, nums-root.val)