美文网首页
[LeetCode 339] Nested List Weigh

[LeetCode 339] Nested List Weigh

作者: 灰睛眼蓝 | 来源:发表于2019-06-01 15:33 被阅读0次
/**
 * // This is the interface that allows for creating nested lists.
 * // You should not implement it, or speculate about its implementation
 * public interface NestedInteger {
 *     // Constructor initializes an empty nested list.
 *     public NestedInteger();
 *
 *     // Constructor initializes a single integer.
 *     public NestedInteger(int value);
 *
 *     // @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();
 *
 *     // Set this NestedInteger to hold a single integer.
 *     public void setInteger(int value);
 *
 *     // Set this NestedInteger to hold a nested list and adds a nested integer to it.
 *     public void add(NestedInteger ni);
 *
 *     // @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();
 * }
 */
class Solution {
    public int depthSum(List<NestedInteger> nestedList) {
        return depthSumHelper (nestedList, 1); //current depth
    }
    
    public int depthSumHelper (List<NestedInteger> nestedList, int currentDepth) {
        int sum = 0;
        
        for (NestedInteger nested : nestedList) {
            if (nested.isInteger ()) {
                sum += nested.getInteger () * currentDepth;
            } else {
                sum += depthSumHelper (nested.getList(), currentDepth + 1);
            }
        }
        
        return sum;
    }
}

相关文章

网友评论

      本文标题:[LeetCode 339] Nested List Weigh

      本文链接:https://www.haomeiwen.com/subject/nghatctx.html