zoukankan      html  css  js  c++  java
  • Design-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].

    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;  
    };  
  • 相关阅读:
    js操作class值
    四、多表连接
    三、约束
    根据出生日期计算年龄
    二、MySql数据操作(二)
    一、MySql基本语句(一)
    jquery基本操作
    纯js实现全选,全不选,反选
    css的基础知识1
    表格的使用
  • 原文地址:https://www.cnblogs.com/msymm/p/8278223.html
Copyright © 2011-2022 走看看