leetcode_c++:栈:Flatten Nested List Iterator(341)
来源:互联网 发布:湖北广电网络宽带资费 编辑:程序博客网 时间:2024/05/21 11:30
Given a nested list of integers, implement an iterator to flatten it.
Each element is either an integer, or a list – whose elements may also be integers or other lists.
Example 1:
Given the list [[1,1],2,[1,1]],
By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,1,2,1,1].
Example 2:
Given the list [1,[4,[6]]],
By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,4,6].
/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its implementation * class NestedInteger { * public: * // Return true if this NestedInteger holds a single integer, rather than a nested list. * bool isInteger() const; * * // Return the single integer that this NestedInteger holds, if it holds a single integer * // The result is undefined if this NestedInteger holds a nested list * int getInteger() const; * * // Return the nested list that this NestedInteger holds, if it holds a nested list * // The result is undefined if this NestedInteger holds a single integer * const vector<NestedInteger> &getList() const; * }; */class NestedIterator { public: void DFS(vector<NestedInteger> &nestedList) { for(auto val: nestedList) { if(val.isInteger()) vec.push_back(val.getInteger()); else DFS(val.getList()); } } NestedIterator(vector<NestedInteger> &nestedList):index(0), vec() { DFS(nestedList); } int next() { return vec[index++]; } bool hasNext() { if(index < vec.size()) return true; return false; } private: int index; vector<int> vec; }; /** * Your NestedIterator object will be instantiated and called as such: * NestedIterator i(nestedList); * while (i.hasNext()) cout << i.next(); */
0 0
- leetcode_c++:栈:Flatten Nested List Iterator(341)
- Flatten Nested List Iterator
- Flatten Nested List Iterator
- Flatten Nested List Iterator
- Flatten Nested List Iterator
- Flatten Nested List Iterator
- Flatten Nested List Iterator
- Flatten Nested List Iterator
- Flatten Nested List Iterator
- Flatten Nested List Iterator
- Flatten Nested List Iterator leetcode 341
- [leetcode-341]Flatten Nested List Iterator(java)
- LeetCode 341 Flatten Nested List Iterator
- LeetCode.341 Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- 341. Flatten Nested List Iterator
- LeetCode|Flatten Nested List Iterator
- (五):Key Set(快速幂+快速幂求模)
- post和get的区别
- 织梦CMS程序使用拼音首字母做栏目名称的方法
- 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出例如: a: 21 次 b: 15 次 c:: 15 次 把: 7 次 当: 9 次 前: 3 次
- Try to play theano
- leetcode_c++:栈:Flatten Nested List Iterator(341)
- [BZOJ3456] 城市规划 - 快速傅里叶变换 - 快速数论变换 - 卷积 - 多项式求逆
- SpringMVC 使用JSR-303进行校验 @Valid
- Connection closed by foreign host问题解决
- Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 错误&&Eclipse 访问tomcat首页报404错误
- ckeditor的配置使用(已验证通过)
- java计算器
- A + B Problem II(大数基础加法)
- 在dedecms模板列表页、内容页调用全站文章的方法