Skip to main content
Back to problems
#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)
LeetCode
solution.rs
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 &current {
        match item {
          NestedInteger::Int(v) => level_sum += v,
          NestedInteger::List(l) => next_level.extend(l.iter()),
        }
      }
      total += level_sum;
      current = next_level;
    }
    total
  }
}