leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0341.cpp (699B)


0 class NestedIterator { 1 stack<pair<vector<NestedInteger> *, int>> st; 2 3 public: 4 NestedIterator(vector<NestedInteger> &nestedList) { st.push({&nestedList, 0}); } 5 int next() { 6 if (!hasNext()) return -1; 7 auto &elem = st.top(); 8 return (*elem.first)[elem.second++].getInteger(); 9 } 10 11 bool hasNext() { 12 while (!st.empty()) { 13 auto &elem = st.top(); 14 if (elem.second == elem.first->size()) { 15 st.pop(); 16 continue; 17 } 18 if ((*elem.first)[elem.second].isInteger()) return true; 19 st.push({&(*elem.first)[elem.second++].getList(), 0}); 20 } 21 return false; 22 } 23 };