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:
[1, 104]
.1 <= Node.val <= 100
import com_github_leetcode.TreeNode
import java.util.LinkedList
import java.util.Objects
import java.util.Queue
/*
* Example:
* var ti = TreeNode(5)
* var v = ti.`val`
* Definition for a binary tree node.
* class TreeNode(var `val`: Int) {
* var left: TreeNode? = null
* var right: TreeNode? = null
* }
*/
class Solution {
fun deepestLeavesSum(root: TreeNode?): Int {
val queue: Queue<TreeNode?> = LinkedList()
queue.offer(root)
var sum = 0
while (queue.isNotEmpty()) {
val size = queue.size
sum = 0
for (i in 0 until size) {
val curr = queue.poll()
sum += Objects.requireNonNull(curr)!!.`val`
if (curr!!.left != null) {
queue.offer(curr.left)
}
if (curr.right != null) {
queue.offer(curr.right)
}
}
}
return sum
}
}