Skip to main content
Back to problems
#339
Medium Algorithms

Nested list weight sum

Depth-First Search Breadth-First Search
85.9% acceptance
Mar 31, 2026
1871
487
You are given a nested list of integers nestedList. Each element is either an integer or a list whose elements may also be integers or other lists. The depth of an integer is the number of lists that it is inside of. For example, the nested list [1,[2,2],[[3],2],1] has each integer's value set to its depth. Return the sum of each integer in nestedList multiplied by its depth.

Solution

Rust
Time O(n)
Space O(n)
LeetCode
solution.rs
// #[derive(Debug, PartialEq, Eq)]
// pub enum NestedInteger {
//   Int(i32),
//   List(Vec<NestedInteger>)
// }
impl Solution {
  pub fn depth_sum(nested_list: Vec<NestedInteger>) -> i32 {
    fn dfs(list: &[NestedInteger], depth: i32) -> i32 {
      let mut sum = 0;
      for item in list {
        match item {
          NestedInteger::Int(v) => sum += v * depth,
          NestedInteger::List(inner) => sum += dfs(inner, depth + 1),
        }
      }
      sum
    }
    dfs(&nested_list, 1)
  }
}