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.

思路:NestedInteger是一个单独的Java类。它可以是integer,也可以是一个list

层数传入初始值为1

需要for each的循环,这样才能加到每个元素

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

 




 
posted @ 2020-08-04 10:46  苗妙苗  阅读(115)  评论(0编辑  收藏  举报