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

    Input: [[1,1],2,[1,1]]
    Output: [1,1,2,1,1]
    Explanation: By calling next repeatedly until hasNext returns false, 
                 the order of elements returned by next should be: [1,1,2,1,1].

    Example 2:

    Input: [1,[4,[6]]]
    Output: [1,4,6]
    Explanation: By calling next repeatedly until hasNext returns false, 
                 the order of elements returned by next should be: [1,4,6].

    思路:Stack怎么写啊,可以不用stack吗?就是一个基本的NestedInteger遍历方法吧,知道有这回事就行 

    整数也需要.getInteger()一下

    public class NestedIterator implements Iterator<Integer> {
        LinkedList<Integer> flattenedList;
        Iterator<Integer> iterator;
        
        public NestedIterator(List<NestedInteger> nestedList) {
            flattenedList = new LinkedList<Integer>();
            flatten(nestedList);
            iterator = flattenedList.iterator();
        }
        
        public void flatten(List<NestedInteger> nestedList) {
            for (NestedInteger i : nestedList) {
                if (i.isInteger()) {
                    flattenedList.add(i.getInteger());
                }else {
                    flatten(i.getList());
                }
            }
        }
    
        @Override
        public Integer next() {
            //是返回itrator的next()
            return iterator.next();
        }
    
        @Override
        public boolean hasNext() {
            return iterator.hasNext();
        }
    }
    View Code
    
    
    



  • 相关阅读:
    [Clojure] 包管理器leiningen配置国内镜像仓库
    [Haskell] 为什么列表操作++很昂贵?
    js判断除了空格换行之外是否为空
    iOS上架之隐私信息访问权限(uni-app)
    vue之动态绑定class
    this
    uni-app 上传图片之压缩图片上传
    uniapp无痛刷新token
    jQuery 发送跨域请求(jsonp)
    Document
  • 原文地址:https://www.cnblogs.com/immiao0319/p/13655790.html
Copyright © 2011-2022 走看看