5.29号刷题

第一题 339. Nested List Weight Sum

算法

相当于一个广度优先遍历,先将每一层的所有点存入一个List中,对于每一层的List,计算当层value的值的大小。之后对应每一层,都做一个相应的计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Solution {
public int depthSum(List<NestedInteger> nestedList) {
if (nestedList.size() == 0) return 0;
int total = 0, level = 1;
while (nestedList.size() != 0) {
List<NestedInteger> next = new LinkedList<>();
for (NestedInteger now : nestedList) {
if (now.isInteger()) {
total += now.getInteger() * level;
} else {
next.addAll(now.getList());
}
}
level++;
nestedList = next;
}
return total;
}
}

学到的东西

对于List节点,如果使用addAll的话,可以将属性相同的节点全部加入List中.