给定一个嵌套的整数列表,请返回该列表按深度加权后所有整数的总和。
每个元素要么是整数,要么是列表。同时,列表中元素同样也可以是整数或者是另一个列表。
示例 1:
输入: [[1,1],2,[1,1]]
输出: 10
解释: 因为列表中有四个深度为 2 的 1 ,和一个深度为 1 的 2。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/nested-list-weight-sum
1.题目要求要用深度来加权,所以需要设置一个表示深度的变量(初始值为 1),但是不能设置在函数内部,因为要用递归来求解,设在内部会无法追踪嵌套的深度。同时,返回值 rlt 也应设在外部。
2.遍历 nestedList, 用 isInterger 来判断当前元素是否是一个整数值,如果是,就按深度加权并加到 rlt 上。否则,说明有 list 的嵌套,此时深度加一,开始递归,结束后记得深度减 1,因为已经从嵌套的 list 中出来了。
注意:递归时要对当前元素调用 NestedInteger 的 getList 方法,不然元素类型与函数参数的类型不匹配
3.遍历完成,返回 rlt。