LeetCode 341 Flatten Nested List Iterator
来源:互联网 发布:薛之谦小孩知乎 编辑:程序博客网 时间:2024/06/06 08:33
题目
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>flatten_list; int cur; void flatten(NestedInteger i) { if (i.isInteger()) { flatten_list.push_back(i.getInteger()); return; } vector<NestedInteger>temp = i.getList(); for (int j = 0; j < temp.size(); j++) flatten(temp[j]); }public: NestedIterator(vector<NestedInteger> &nestedList) { for (int i = 0; i < nestedList.size();i++) flatten(nestedList[i]); cur = 0; } int next() { return flatten_list[cur++]; } bool hasNext() { return cur < flatten_list.size(); }};/** * Your NestedIterator object will be instantiated and called as such: * NestedIterator i(nestedList); * while (i.hasNext()) cout << i.next(); */
0 0
- 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 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
- (18)内容浏览器之开发者文件夹
- 【机房重构】---注册
- 进程通信之管道(PIPE)
- Android中的MVP模式的理解
- 1比特和第二次世界大战?
- LeetCode 341 Flatten Nested List Iterator
- 1039 数的划分
- 嵌入式编程与PC编程有何区别
- centos下提示Sever is already active for display 0
- 【JavaSE系列-入门篇2】——Java技术能够做什么?
- 省赛之行
- Java面向对象编程(常用基础)
- 【bzoj1013】[JSOI2008]球形空间产生器sphere
- OpenSSL Cookbook 3——证书注册请求(CSR)