Nested list weight sum
# """
# This is the interface that allows for creating nested lists.
# You should not implement it, or speculate about its implementation
# """
#class NestedInteger(object):
# def isInteger(self):
# """
# @return True if this NestedInteger holds a single integer, rather than a nested list.
# :rtype bool
# """
#
# def getInteger(self):
# """
# @return the single integer that this NestedInteger holds, if it holds a single integer
# Return None if this NestedInteger holds a nested list
# :rtype int
# """
#
# def getList(self):
# """
# @return the nested list that this NestedInteger holds, if it holds a nested list
# Return None if this NestedInteger holds a single integer
# :rtype List[NestedInteger]
# """
class Solution(object):
def depthSum(self, nestedList):
"""
:type nestedList: List[NestedInteger]
:rtype: int
"""
return self.depthSumHelper(nestedList, 1)
#sum = self.depthSumHelper(nestedList, 1)
#print 'final sum: ', sum
#return sum
def depthSumHelper(self, nestedList, rep, sum = 0): #rep stands for repetition/or depth of the DFS
for item in nestedList:
#print 'item'
if item.getList():
sum = self.depthSumHelper(item.getList(), rep + 1, sum)
#print 'retSum: ', sum
elif item.isInteger():
i = item.getInteger() * rep
sum += i
#print 'integer: ', i, 'rep: ', rep, 'sum: ', sum
#print 'returning: ', sum
return sumLast updated