• 力扣labuladong——一刷day40


    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


    前言


    N叉树的结构,构造迭代器

    一、力扣341. 扁平化嵌套列表迭代器

    /**
     * // This is the interface that allows for creating nested lists.
     * // You should not implement it, or speculate about its implementation
     * public interface NestedInteger {
     *
     *     // @return true if this NestedInteger holds a single integer, rather than a nested list.
     *     public boolean isInteger();
     *
     *     // @return the single integer that this NestedInteger holds, if it holds a single integer
     *     // Return null if this NestedInteger holds a nested list
     *     public Integer getInteger();
     *
     *     // @return the nested list that this NestedInteger holds, if it holds a nested list
     *     // Return empty list if this NestedInteger holds a single integer
     *     public List getList();
     * }
     */
    public class NestedIterator implements Iterator<Integer> {
        LinkedList<NestedInteger> list;
    
        public NestedIterator(List<NestedInteger> nestedList) {
            list = new LinkedList<>(nestedList);
        }
    
        @Override
        public Integer next() {
            return list.remove(0).getInteger();
        }
    
        @Override
        public boolean hasNext() {
            while(!list.isEmpty() && !list.get(0).isInteger()){
                List<NestedInteger> first = list.remove(0).getList();
                for(int i = first.size()-1; i >= 0; i --){
                    list.addFirst(first.get(i));
                }
            }
            return !list.isEmpty();
        }
    }
    
    /**
     * Your NestedIterator object will be instantiated and called as such:
     * NestedIterator i = new NestedIterator(nestedList);
     * while (i.hasNext()) v[f()] = i.next();
     */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
  • 相关阅读:
    HttpClient笔记
    web测试——业务测试2
    Java面向对象进阶7——代码块
    MySQL索引
    【设计模式-04】原型模式
    pygame简单实现游戏开始菜单
    RabbitMQ 常用模式
    Web 应用程序中的数据流
    控制输入流,从控制台打印到文件中,更改输出的位置
    Java中类关键字super的用法详解
  • 原文地址:https://blog.csdn.net/ResNet156/article/details/134479502