Problem
Given a list, each element in the list can be a list or integer. flatten it into a simply list with integers.
If the element in the given list is a list, it can contain list too.
Example
Given [1,2,[1,2]], return [1,2,1,2].
Given [4,[3,[2,[1]]]], return [4,3,2,1].
思路
- recursively flatten the list
public List<Integer> flatten(List<NestedInteger> nestedList) {
List<Integer> res = new ArrayList<>();
for (NestedInteger ni: nestedList) {
if (ni.isInteger()) {
res.add(ni.getInteger());
} else {
res.addAll(flatten(ni.getList()));
}
}
return res;
}