LeetCode Entry

1161. Maximum Level Sum of a Binary Tree

06.01.2026 medium 2026 kotlin rust

Min level max sum in tree

1161. Maximum Level Sum of a Binary Tree medium blog post substack youtube

142eb616-0647-486f-ae28-ff010de3fe01 (1).webp

Join me on Telegram

https://t.me/leetcode_daily_unstoppable/1229

Problem TLDR

Min level max sum in tree #medium

Intuition

Use BFS or DFS.

Approach

  • compute max only after all number are added in this level

Complexity

  • Time complexity: \(O(n)\)

  • Space complexity: \(O(n)\)

Code

// 34ms
    fun maxLevelSum(r: TreeNode?) = ArrayDeque<TreeNode>().let { q ->
        q += r!!; (1..25).maxBy { if (q.size < 1) -100001 else
            (1..q.size).sumOf { q.removeFirst().run {
                left?.let { q += it }; right?.let { q += it }; `val`
            }}
        }
    }
// 6ms
    pub fn max_level_sum(r: Option<Rc<RefCell<TreeNode>>>) -> i32 {
        let (mut m, mut ml) = ([0;27],0);
        fn dfs(m: &mut[i32], ml: &mut usize, l: usize, n: &Option<Rc<RefCell<TreeNode>>>) {
            let Some(n) = n else { return }; if l > 25 { return }; let n = n.borrow();
            m[l] += n.val; *ml = l.max(*ml); dfs(m, ml, l+1, &n.left); dfs(m, ml, l+1, &n.right)
        }
        dfs(&mut m, &mut ml, 0, &r); -(0..=ml).map(|i|(m[i],-(i as i32)-1)).max().unwrap().1
    }