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.

思路:list在递归中随时用,所以不用index i。for each循环list中的每一个元素

depth碰到括号就加一层 直到是整数为止

e.getInteger() e.getList()全都写上才能用啊!

class Solution {
    public int depthSum(List<NestedInteger> nestedList) {
        //cc  
        if (nestedList == null)
            return 0;
        return helper(nestedList, 1);
    }
    
    //list在递归中随时用,所以不用i。for循环list中的每一个元素
    //depth碰到括号就加一层 直到是整数为止
    public int helper(List<NestedInteger> list, int depth) {
        int sum = 0;
        
        for (NestedInteger e : list) {
            //e.getInteger() e.getList()全都写上才能用
            sum += e.isInteger() ? e.getInteger() * depth : helper(e.getList(), depth + 1);
        }
        
        return sum;
    }
}
View Code

 





posted @ 2020-09-12 11:05  苗妙苗  阅读(98)  评论(0编辑  收藏  举报