赞
踩
整条路径和减去target和,如果存在这样的一个前缀节点,那count+1,遍历满足等式的,就可以加count
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def pathSum(self, root: Optional[TreeNode], targetSum: int) -> int: def dfs(node, cnts, cursum): if not node: return 0 cursum += node.val #前缀和 ans = cnts[cursum - targetSum] #前缀和-target cnts[cursum] += 1 #有就加count if node.left: ans += dfs(node.left, cnts, cursum) if node.right: ans += dfs(node.right, cnts, cursum) cnts[cursum] -= 1 return ans return dfs(root, Counter([0]), 0)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。