LeetCode: Deepest Leaves Sum Solution
1/**2 * Definition for a binary tree node.3 * function TreeNode(val, left, right) {4 * this.val = (val===undefined ? 0 : val)5 * this.left = (left===undefined ? null : left)6 * this.right = (right===undefined ? null : right)7 * }8 */9/**10 * @param {TreeNode} root11 * @return {number}12 */13var deepestLeavesSum = function (root) {14 let maxDepth = 015 let deepestLeavesSum = 01617 const assignDepth = (node, depth = 0) => {18 if (!node) return1920 maxDepth = Math.max(maxDepth, depth)21 node.depth = depth22 assignDepth(node.left, depth + 1)23 assignDepth(node.right, depth + 1)24 }25 const getSum = node => {26 if (!node) return2728 if (node.depth === maxDepth) deepestLeavesSum += node.val29 getSum(node.left)30 getSum(node.right)31 }3233 assignDepth(root)34 getSum(root)3536 return deepestLeavesSum37}3839var deepestLeavesSum = function (root) {40 let maxDepth = 041 const depthSum = {}4243 const traverse = (node, depth = 0) => {44 if (!node) return4546 depthSum[depth] = (depthSum[depth] || 0) + node.val47 maxDepth = Math.max(maxDepth, depth)48 traverse(node.left, depth + 1)49 traverse(node.right, depth + 1)50 }5152 traverse(root)5354 return depthSum[maxDepth]55}
Comments
Loading comments...
Tags
leetcode
tree
Apply and earn a $2,500 bonus once you're hired on your first job!
Clients from the Fortune 500 to Silicon Valley startups
Choose your own rate, get paid on time
From hourly, part-time, to full-time positions
Flexible remote working environment
A lot of open JavaScript jobs!!
Fact corner: Referred talent are 5x more likely to pass the Toptal screening process than the average applicant.
Still hesitate? Read HoningJS author's guide on dealing with Toptal interview process.