#1161
Medium Algorithms Maximum level sum of a binary tree
Tree Depth-First Search Breadth-First Search Binary Tree
70.0% acceptance
Feb 27, 2026
4120
116
Given the root of a binary tree, the level of its root is 1, the level of its children is 2, and so on.
Return the smallest level x such that the sum of all the values of nodes at level x is maximal.
Solution
Rust
Time O(n²)
Space O(n)
use std::collections::VecDeque;
use std::rc::Rc;
use std::cell::RefCell;
impl Solution {
pub fn max_level_sum(root: Option<std::rc::Rc<std::cell::RefCell<TreeNode>>>) -> i32 {
let mut queue = VecDeque::new();
if let Some(r) = root { queue.push_back(r); }
let mut max_sum = i32::MIN;
let mut best_level = 1;
let mut level = 1;
while !queue.is_empty() {
let size = queue.len();
let mut sum = 0;
for _ in 0..size {
let node = queue.pop_front().unwrap();
sum += node.borrow().val;
if let Some(l) = node.borrow().left.clone() { queue.push_back(l); }
if let Some(r) = node.borrow().right.clone() { queue.push_back(r); }
}
if sum > max_sum { max_sum = sum; best_level = level; }
level += 1;
}
best_level
}
}