Input: root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
Output: 15
Input: root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]
Output: 19
/**
* 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]
}