LeetCode Entry

515. Find Largest Value in Each Tree Row

24.10.2023 medium 2023 kotlin

Binary Tree's maxes of the levels

515. Find Largest Value in Each Tree Row medium blog post substack image.png

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()
    }