1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
   | 
 
 
 
 
 
 
 
 
 
 
 
 
  function pathSum(root: TreeNode | null, targetSum: number): number {      const pathMap: Map<number, number> = new Map()   pathMap.set(0, 1)   return traverse(root, pathMap, targetSum, 0) };
  function traverse(node: TreeNode, pathMap: Map<number, number>, target: number, curr: number): number {     if (node === null) return 0     let res = 0     curr += node.val     res += pathMap.get(curr - target) || 0     pathMap.set(curr, (pathMap.get(curr) || 0) + 1)     res += traverse(node.left, pathMap, target, curr)     res += traverse(node.right, pathMap, target, curr)     pathMap.set(curr, pathMap.get(curr) - 1)     return res   }
 
  |