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]
}

Last updated