22. 平面列表
2017-12-20 本文已影响0人
李清依
22. 平面列表
给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。
注意事项
如果给定的列表中的要素本身也是一个列表,那么它也可以包含列表。
您在真实的面试中是否遇到过这个题?
Yes
样例
给定
[1,2,[1,2]]
,返回
[1,2,1,2]
。
给定
[4,[3,[2,[1]]]]
,返回
[4,3,2,1]
。
相关题目
思路:递归做的,先判断其是否为整数,若是则直接加入,若不是则递归加入flattern(),一直到其为整数才加入result数组。
class Solution {
public:
// @param nestedList a list of NestedInteger
// @return a list of integer
vector<int> flatten(vector<NestedInteger> &nestedList) {
// Write your code here
vector<int> result;
for(auto ele : nestedList){
if(ele.isInteger()){
result.push_back(ele.getInteger());
}
else{
vector<NestedInteger> sublist=ele.getList();
vector<int> temp=flatten(sublist);
result.insert(result.end(),temp.begin(),temp.end());//从后面加入该数组中才有效
}
}
return result;
}
};