1302. Deepest Leaves Sum

Medium
Given the root of a binary tree, return the sum of values of its deepest leaves.
Example 1:
​
​
Input: root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
Output: 15
Example 2:
Input: root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]
Output: 19
Constraints:
  • The number of nodes in the tree is in the range [1, 10^4].
  • 1 <= Node.val <= 100

解題

Runtime: 51 ms, faster than 95.7%
Memory Usage: 7.9 MB, less than 71.13%
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func deepestLeavesSum(root *TreeNode) int {
if root == nil { return 0 }
arr := make([]int, 0)
​
var helper func(*TreeNode, int)
helper = func(root *TreeNode, depth int) {
if root == nil { return }
​
if len(arr) == depth {
arr = append(arr, 0)
}
​
if root.Left == nil && root.Right == nil {
arr[depth] += root.Val
}
helper(root.Left, depth + 1)
helper(root.Right, depth + 1)
}
​
helper(root, 0)
​
return arr[len(arr) - 1]
}