# """# This is the interface that allows for creating nested lists.# You should not implement it, or speculate about its implementation# """# class NestedInteger:# def __init__(self, value=None):# """# If value is not specified, initializes an empty list.# Otherwise initializes a single integer equal to value.# """## def isInteger(self):# """# @return True if this NestedInteger holds a single integer, rather than a nested list.# :rtype bool# """## def add(self, elem):# """# Set this NestedInteger to hold a nested list and adds a nested integer elem to it.# :rtype void# """## def setInteger(self, value):# """# Set this NestedInteger to hold a single integer equal to value.# :rtype void# """## 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]# """classSolution:defdepthSum(self,nestedList:List[NestedInteger])->int:defdfs(nestedList,depth):depth_sum=0foriteminnestedList:ifitem.isInteger():depth_sum+=item.getInteger()*depthelse:depth_sum+=dfs(item.getList(),depth+1)returndepth_sumreturndfs(nestedList,1)
/** * // 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 empty list if this NestedInteger holds a single integer * public List<NestedInteger> getList(); * } */classSolution{publicintdepthSum(List<NestedInteger>nestedList){returndfs(nestedList,1);}privateintdfs(List<NestedInteger>nestedList,intdepth){intdepthSum=0;for(NestedIntegeritem:nestedList){if(item.isInteger()){depthSum+=item.getInteger()*depth;}else{depthSum+=dfs(item.getList(),depth+1);}}returndepthSum;}}
/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its implementation * function NestedInteger() { * * Return true if this NestedInteger holds a single integer, rather than a nested list. * @return {boolean} * this.isInteger = function() { * ... * }; * * Return the single integer that this NestedInteger holds, if it holds a single integer * Return null if this NestedInteger holds a nested list * @return {integer} * this.getInteger = function() { * ... * }; * * Set this NestedInteger to hold a single integer equal to value. * @return {void} * this.setInteger = function(value) { * ... * }; * * Set this NestedInteger to hold a nested list and adds a nested integer elem to it. * @return {void} * this.add = function(elem) { * ... * }; * * Return the nested list that this NestedInteger holds, if it holds a nested list * Return null if this NestedInteger holds a single integer * @return {NestedInteger[]} * this.getList = function() { * ... * }; * }; *//** * @param {NestedInteger[]} nestedList * @return {number} */vardepthSum=function(nestedList){constdfs=(nestedList,depth)=>{letdepthSum=0;for(constitemofnestedList){if(item.isInteger()){depthSum+=item.getInteger()*depth;}else{depthSum+=dfs(item.getList(),depth+1);}}returndepthSum;};returndfs(nestedList,1);};