Leetcode 339 Solution

This article provides solution to leetcode question 339 (nested-list-weight-sum)

https://leetcode.com/problems/nested-list-weight-sum

Solution

/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its implementation * class NestedInteger { * public: * // Return true if this NestedInteger holds a single integer, rather than a nested list. * bool isInteger() const; * * // Return the single integer that this NestedInteger holds, if it holds a single integer * // The result is undefined if this NestedInteger holds a nested list * int getInteger() const; * * // Return the nested list that this NestedInteger holds, if it holds a nested list * // The result is undefined if this NestedInteger holds a single integer * const vector<NestedInteger> &getList() const; * }; */ class Solution { public: int depthSum(NestedInteger& integer, int depth) { int res = 0; if (integer.isInteger()) res += depth * integer.getInteger(); else { auto& subintegers = integer.getList(); for (auto subinteger : subintegers) res += depthSum(subinteger, depth + 1); } return res; }
int depthSum(vector<NestedInteger>& nestedList) { int res = 0;
for (auto integer : nestedList) res += depthSum(integer, 1);
return res; } };