1
var sufficientSubset = function (root, limit) {2
const MIN = Number.MIN_SAFE_INTEGER;3
const sum = removeNodes(root, 0);5
if (sum < limit) return null;9
function removeNodes(node, prevSum) {10
if (node == null) return MIN;11
if (node.left == node.right) return node.val + prevSum;13
const leftSum = removeNodes(node.left, prevSum + node.val);14
const rightSum = removeNodes(node.right, prevSum + node.val);16
if (leftSum < limit) node.left = null;17
if (rightSum < limit) node.right = null;19
if (node.left == node.right) return MIN;21
return node.left == null ? rightSum : leftSum;