All files / leetCode 0437.ts

100% Statements 8/8
100% Branches 6/6
100% Functions 2/2
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23            40x 21x 19x 131x 75x 56x 56x       19x            
import type { TreeNode } from './Tree'
 
export default function pathSum(
  root: TreeNode<number> | null,
  targetSum: number,
): number {
  if (root === null)
    return 0
  const dfs = (node: TreeNode<number> | null, sum: number): number => {
    if (node === null)
      return 0
    sum += node.val
    return (
      (sum === targetSum ? 1 : 0) + dfs(node.left, sum) + dfs(node.right, sum)
    )
  }
  return (
    dfs(root, 0)
    + pathSum(root.left, targetSum)
    + pathSum(root.right, targetSum)
  )
}