# LeetCode: Deepest Leaves Sum Solution

```.css-ds3kc{display:table-row;}.css-1t8atru{display:table-cell;opacity:0.5;padding-right:var(--chakra-space-6);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:right;}1.css-2qghsv{display:table-cell;}/**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 = 016
17  const assignDepth = (node, depth = 0) => {18    if (!node) return19
20    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) return27
28    if (node.depth === maxDepth) deepestLeavesSum += node.val29    getSum(node.left)30    getSum(node.right)31  }32
33  assignDepth(root)34  getSum(root)35
36  return deepestLeavesSum37}38
39var deepestLeavesSum = function (root) {40  let maxDepth = 041  const depthSum = {}42
43  const traverse = (node, depth = 0) => {44    if (!node) return45
46    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  }51
52  traverse(root)53
54  return depthSum[maxDepth]55}```

leetcode

tree

## Next Post

LeetCode: Beautiful Arrangement II

Apr 13, 2021

Search Posts