#364
Medium Algorithms Nested list weight sum ii
Stack Depth-First Search Breadth-First Search
66.9% acceptance
Mar 31, 2026
1172
481
#[derive(Debug, PartialEq, Eq, Clone)]
pub enum NestedInteger {
Int(i32),
List(Vec),
}
Solution
Rust
Time O(n²)
Space O(n)
impl Solution {
pub fn depth_sum_inverse(nested_list: Vec<NestedInteger>) -> i32 {
// BFS using references to avoid cloning NestedInteger.
// Accumulate level_sum at each depth; adding it to total each iteration
// means shallower integers naturally receive higher weight.
let mut level_sum = 0i32;
let mut total = 0i32;
let mut current: Vec<&NestedInteger> = nested_list.iter().collect();
while !current.is_empty() {
let mut next_level: Vec<&NestedInteger> = Vec::new();
for item in ¤t {
match item {
NestedInteger::Int(v) => level_sum += v,
NestedInteger::List(l) => next_level.extend(l.iter()),
}
}
total += level_sum;
current = next_level;
}
total
}
}