给定一个嵌套的整数列表,请返回该列表按深度加权后所有整数的总和。
每个元素要么是整数,要么是列表。同时,列表中元素同样也可以是整数或者是另一个列表。
输入: [[1,1],2,[1,1]]
输出: 10
解释: 因为列表中有四个深度为 2 的 1 ,和一个深度为 1 的 2。
递归处理
class Solution {
public int depthSum(List<NestedInteger> nestedList) {
return getDepthSum(nestedList, 1);
}
private int getDepthSum(List<NestedInteger> nestedList, int curDepth){
int sum = 0;
for(NestedInteger ni : nestedList){
if(ni.isInteger()){
sum += ni.getInteger() * curDepth;
}else {
sum += getDepthSum(ni.getList(), curDepth+1);
}
}
return sum;
}
}