문제 설명
Given the root of a binary tree, return the level order traversal of its nodes’ values. (i.e., from left to right, level by level).
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
문제풀이
class Solution {
func deepestLeavesSum(_ root: TreeNode?) -> Int {
guard let root = root else { return 0 }
var queue: [TreeNode] = [root]
while !queue.isEmpty {
var isLastDepth = true
var sum = 0
for _ in queue {
let node = queue.removeFirst()
if let leftNode = node.left {
isLastDepth = false
queue.append(leftNode)
}
if let rightNode = node.right {
isLastDepth = false
queue.append(rightNode)
}
sum += node.val
}
if isLastDepth { return sum }
}
return 0
}
}