- 分析
这道题是一道设计题,思路参考了labuladong中写的文章,自己想不出来。值得复习。。。 - 代码
class NestedIterator {
private:
vector<int> it;
int index;
public:
NestedIterator(vector<NestedInteger> &nestedList) {
vector<int> result;
for(int i = 0; i < nestedList.size(); i++){
traverse(nestedList[i], result);
}
this -> it = result;
index = 0;
}
int next() {
return it[index++];
}
bool hasNext() {
return index < it.size();
}
void traverse(const NestedInteger& node, vector<int>& vec){
if(node.isInteger()){
vec.push_back(node.getInteger());
return;
}
int size = node.getList().size();
for(int i = 0; i < size; i++){
traverse(node.getList()[i], vec);
}
}
};