1var pathSum = function (root, sum, presums = { 0: 1 }, prev = 0) {2if (!root) return 0;3let curr = prev + root.val;4presums[curr] = (presums[curr] || 0) + 1;5let res = (presums[curr - sum] || 0) - !sum;6res +=7pathSum(root.left, sum, presums, curr) +8pathSum(root.right, sum, presums, curr);9presums[curr]--;10return res;11};