leetcode——341——Flatten Nested List Iterator
来源:互联网 发布:网易人工智能事业部 编辑:程序博客网 时间:2024/06/02 11:58
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 bynext 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 bynext 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: NestedIterator(vector<NestedInteger> &nestedList) { flat(nestedList); listIter = mList.begin(); } int next() { int res = *listIter; ++listIter; return res; } bool hasNext() { return listIter != mList.end(); } void flat(vector<NestedInteger>& nL){ for (auto &it : nL) { if (it.isInteger()) mList.push_back(it.getInteger()); else flat(it.getList()); } } private: list<int>::iterator listIter; list<int>mList; };/** * Your NestedIterator object will be instantiated and called as such: * NestedIterator i(nestedList); * while (i.hasNext()) cout << i.next(); */
0 0
- leetcode——341——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
- LeetCode|Flatten Nested List Iterator
- [LeetCode] Flatten Nested List Iterator
- LeetCode:Flatten Nested List Iterator
- [LeetCode] Flatten Nested List Iterator
- Leetcode算法学习日志-341 Flatten Nested List Iterator
- leetcode 341. Flatten Nested List Iterator
- [leetcode] 341. Flatten Nested List Iterator
- LeetCode 341. Flatten Nested List Iterator
- LeetCode No341. Flatten Nested List Iterator
- LeetCode 341. Flatten Nested List Iterator
- [leetcode] 341. Flatten Nested List Iterator
- LeetCode: 341. Flatten Nested List Iterator
- Leetcode 341. Flatten Nested List Iterator
- Linux安装卸载MySQL以及修改MySQL初始密码
- 《Java EE 实用教程》读后记录
- iOS与JS交互,OC调用JS方法,JS调用OC方法,URL解码
- C++实验四
- css隐藏过长的多余溢出文字的方法
- leetcode——341——Flatten Nested List Iterator
- C++第5次上机实验
- hdu2444
- javascript设计模式介绍(七)稳妥构造函数模式
- 编译与静态链接
- elasticsearch更改mapping(不停服务重建索引)
- android 低耦合度的adapter与holder案例,使用butterknife
- ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint
- c++ vector(向量)使用方法详解