[leetcode-341]Flatten Nested List Iterator(java)

原创 2016年06月01日 09:26:15

这道题的思想是在调用hasNext的时候,将NestedInteger拆分,然后将第一个元素保存到域变量中即可。其他元素添加到链表的首部。

/**
 * // 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 null if this NestedInteger holds a single integer
 *     public List<NestedInteger> getList();
 * }
 */
public class NestedIterator implements Iterator<Integer> {
    List<NestedInteger> nestedList;
    int data;
    public NestedIterator(List<NestedInteger> nestedList) {
        this.nestedList = nestedList;
    }

    @Override
    public Integer next() {
        return data;
    }

    @Override
    public boolean hasNext() {
        while(nestedList != null && nestedList.size() > 0){
           NestedInteger tmpInt = nestedList.remove(0);
            if(tmpInt.isInteger()){
                data = tmpInt.getInteger();
                return true;
            }else{
                nestedList.addAll(0,tmpInt.getList());
            } 
        }
        return false;
    }
}

/**
 * Your NestedIterator object will be instantiated and called as such:
 * NestedIterator i = new NestedIterator(nestedList);
 * while (i.hasNext()) v[f()] = i.next();
 */

LeetCode341 Flatten Nested List Iterator(迭代器模式实践) Java

题目: Given a nested list of integers, implement an iterator to flatten it.Each element is either an ...

[leetcode] 341. Flatten Nested List Iterator 解题报告

题目链接: https://leetcode.com/problems/flatten-nested-list-iterator/ Given a nested list of integers,...

LeetCode 341. Flatten Nested List Iterator(嵌套列表迭代器)

原题网址:https://leetcode.com/problems/flatten-nested-list-iterator/ Given a nested list of integers, ...
  • jmspan
  • jmspan
  • 2016年04月30日 10:15
  • 717

LeetCode No341. Flatten Nested List Iterator

1. 题目描述Given a nested list of integers, implement an iterator to flatten it.Each element is either a...

[Leetcode] 341. Flatten Nested List Iterator 解题报告

题目: Given a nested list of integers, implement an iterator to flatten it. Each element is ei...

Leetcode 341. Flatten Nested List Iterator

341. Flatten Nested List Iterator Total Accepted: 17597 Total Submissions: 49172 Difficulty: Medium ...

[leetcode] 341. Flatten Nested List Iterator

Given a nested list of integers, implement an iterator to flatten it. Each element is either an i...

341. Flatten Nested List Iterator

题目:Flatten Nested List Iterator原题链接:https://leetcode.com/problems/flatten-nested-list-iterator/ Giv...

LeetCode|Flatten Nested List Iterator

Given a nested list of integers, implement an iterator to flatten it.Each element is either an integ...

528.Flatten Nested List Iterator-摊平嵌套的列表(中等题)

摊平嵌套的列表 题目给你一个嵌套的列表,实现一个迭代器将其摊平。 一个列表的每个元素可能是整数或者一个列表。 样例给出列表 [[1,1],2,[1,1]],经过迭代器之后返回 [1,1,2,1,1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[leetcode-341]Flatten Nested List Iterator(java)
举报原因:
原因补充:

(最多只允许输入30个字)