LeetCode Entry
515. Find Largest Value in Each Tree Row
Binary Tree's maxes of the levels
515. Find Largest Value in Each Tree Row medium
blog post
substack

Join me on Telegram
https://t.me/leetcode_daily_unstoppable/380
Problem TLDR
Binary Tree’s maxes of the levels
Intuition
Just use Breadth-First Search
Approach
Let’s use some Kotlin’s API:
- generateSequence
- maxOf
Complexity
-
Time complexity: \(O(n)\)
-
Space complexity: \(O(n)\)
Code
fun largestValues(root: TreeNode?): List<Int> =
with(ArrayDeque<TreeNode>()) {
root?.let { add(it) }
generateSequence { if (isEmpty()) null else
(1..size).maxOf {
with(removeFirst()) {
left?.let { add(it) }
right?.let { add(it) }
`val`
}
}
}.toList()
}