24.10.2023
515. Find Largest Value in Each Tree Row medium
blog post
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()
}