leetcode 341. Flatten Nested List Iterator
来源:互联网 发布:ai软件下载 编辑:程序博客网 时间:2024/05/29 04:41
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 {vector<int>flat;int kk;void flatten(NestedInteger ni){if (ni.isInteger()){flat.push_back(ni.getInteger());return;}const vector<NestedInteger>vv=ni.getList();int k = 0;while (k < vv.size()){flatten(vv[k]);k++;}}public:NestedIterator(vector<NestedInteger> &nestedList) {for (int i = 0; i < nestedList.size();i++)flatten(nestedList[i]);kk = 0;}int next() {return flat[kk++];}bool hasNext() {return kk < flat.size();}};/** * Your NestedIterator object will be instantiated and called as such: * NestedIterator i(nestedList); * while (i.hasNext()) cout << i.next(); */
accept
0 0
- 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] 341. 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 341. 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 341. Flatten Nested List Iterator
- LeetCode|Flatten Nested List Iterator
- [LeetCode] Flatten Nested List Iterator
- LeetCode:Flatten Nested List Iterator
- 50_Android安全机制
- Qt学习记录--04 Qt的对话框介绍
- 我想我要做点什么
- xc_domain_save.c
- 51_Activity小结
- leetcode 341. Flatten Nested List Iterator
- tomcat7 1000并发量配置 tomcat7配置优化
- 52_保存Activity的状态
- ecshop提示Strict Standards: Non-static method cls_image::gd_version()
- 第三周总结
- Python 练习实例34
- JavaScript对象
- joomla对象注入漏洞分析
- 53_Activity一些操作变换