基本思路:题目看着很吓人,仔细理解之后就很简单了,NestedInteger类其实就是一个数据结构,他里面只有两种东西,一个是vector<NestedInteger>,和Int。这就很简单了,从头开始遍历nestedList,若是Int直接Push进Res中,若不是,那就递归。函数next和函数hasNext都是基本的东西,就不细说了。下面AC解:
AC解:
class NestedIterator {
public:
vector<int> Res;
NestedIterator(vector<NestedInteger> &nestedList) {
_NestedIterator(Res, nestedList);
}
void _NestedIterator(vector<int> &Res, vector<NestedInteger> nestedList)
{
for (int i = 0; i < nestedList.size(); i++)
{
if (nestedList[i].isInteger())
{
Res.push_back(nestedList[i].getInteger());
}
else
{
_NestedIterator(Res, nestedList[i].getList());
}
}
}
int next() {
int T = Res[0];
Res.erase(Res.begin());
return T;
}
bool hasNext() {
if (Res.size() != 0)
return true;
else
return false;
}
};