339. Nested List Weight Sum 339.嵌套列表权重总和
Given a nested list of integers, return the sum of all integers in the list weighted by their depth.
Each element is either an integer or a list -- whose elements may also be integers or other lists.
Example 1:
Input: [[1,1],2,[1,1]]
Output: 10
Explanation: Four 1's at depth 2, one 2 at depth 1.
Example 2:
Input: [1,[4,[6]]]
Output: 27
Explanation: One 1 at depth 1, one 4 at depth 2, and one 6 at depth 3; 1 + 4*2 + 6*3 = 27.
思路:list在递归中随时用,所以不用index i。for each循环list中的每一个元素
depth碰到括号就加一层 直到是整数为止
e.getInteger() e.getList()全都写上才能用啊!
class Solution { public int depthSum(List<NestedInteger> nestedList) { //cc if (nestedList == null) return 0; return helper(nestedList, 1); } //list在递归中随时用,所以不用i。for循环list中的每一个元素 //depth碰到括号就加一层 直到是整数为止 public int helper(List<NestedInteger> list, int depth) { int sum = 0; for (NestedInteger e : list) { //e.getInteger() e.getList()全都写上才能用 sum += e.isInteger() ? e.getInteger() * depth : helper(e.getList(), depth + 1); } return sum; } }