/*
* 339. Nested List Weight Sum
* 2016-7-10 by Mingyang
* 这就是很简单的dfs了,不详谈,count+1不是count++
*/
public int depthSum(List<NestedInteger> nestedList) {
if(nestedList==null||nestedList.size()==0)
return 0;
return depthSumHelper(nestedList,1);
}
public int depthSumHelper(List<NestedInteger> nestedList,int count){
int res=0;
for(NestedInteger nest:nestedList){
if(nest.isInteger()){
res+=count*nest.getInteger();
}else{
List<NestedInteger> temp=nest.getList();
res+=depthSumHelper(temp,count+1);
}
}
return res;
}
// This is the interface that allows for creating nested lists.
// You should not implement it, or speculate about its implementation
public interface NestedInteger {
// @return true if this NestedInteger holds a single integer, rather than a nested list.
public boolean isInteger();
// @return the single integer that this NestedInteger holds, if it holds a single integer
// Return null if this NestedInteger holds a nested list
public Integer getInteger();
// @return the nested list that this NestedInteger holds, if it holds a nested list
// Return null if this NestedInteger holds a single integer
public List<NestedInteger> getList();
}