339. Nested List Weight Sum 339.嵌套列表权重总和

Given a nested list of integers, return the sum of all integers in the list weighted by their depth.

Each element is either an integer or a list -- whose elements may also be integers or other lists.

Example 1:

Input: [[1,1],2,[1,1]]
Output: 10 
Explanation: Four 1's at depth 2, one 2 at depth 1.

Example 2:

Input: [1,[4,[6]]]
Output: 27 
Explanation: One 1 at depth 1, one 4 at depth 2, and one 6 at depth 3; 1 + 4*2 + 6*3 = 27.

递归没错,但是还需要加一个depth参数

求sum的时候还要乘以depth

class Solution {
    public int depthSum(List<NestedInteger> nestedList) {
        if (nestedList == null)
            return 0;
        
        return helper(nestedList, 1);
    }
    
    public int helper(List<NestedInteger> nestedList, int depth) {
        int sum = 0;
        
        for (NestedInteger e : nestedList) {
            sum += e.isInteger() ? e.getInteger() * depth : 
            helper(e.getList(), depth + 1);
        }
        
        return sum;
    }
}
View Code


 
原文地址:https://www.cnblogs.com/immiao0319/p/13737097.html