[leetcode] 341. Flatten Nested List Iterator
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[leetcode] 341. Flatten Nested List Iterator相关的知识,希望对你有一定的参考价值。
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]
.
Solution:
class NestedIterator { public: NestedIterator(vector<NestedInteger> &nestedList) { for (int i = nestedList.size() - 1; i >= 0; i--) { stk.push(nestedList[i]); } } int next() { NestedInteger t = stk.top(); // access top value stk.pop(); return t.getInteger(); } bool hasNext() { while (!stk.empty()) { NestedInteger t = stk.top(); // access top value if (t.isInteger()) return true; stk.pop(); vector<NestedInteger> tl = t.getList(); for (int i = tl.size() - 1; i >= 0; i--) { stk.push(tl[i]); } } return false; } private: stack<NestedInteger> stk; };
以上是关于[leetcode] 341. Flatten Nested List Iterator的主要内容,如果未能解决你的问题,请参考以下文章
[leetcode] 341. Flatten Nested List Iterator
leetcode341. Flatten Nested List Iterator
[leetcode]341. Flatten Nested List Iterator 展开嵌套列表的迭代器
341. Flatten Nested List Iterator