/* * 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(); }