341. Flatten Nested List Iterator【M】【42】

来源:互联网 发布:生化危机剧情 知乎 编辑:程序博客网 时间:2024/06/08 02:38

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].


Subscribe to see which companies asked this question


# """# This is the interface that allows for creating nested lists.# You should not implement it, or speculate about its implementation# """#class NestedInteger(object):#    def isInteger(self):#        """#        @return True if this NestedInteger holds a single integer, rather than a nested list.#        :rtype bool#        """##    def getInteger(self):#        """#        @return the single integer that this NestedInteger holds, if it holds a single integer#        Return None if this NestedInteger holds a nested list#        :rtype int#        """##    def getList(self):#        """#        @return the nested list that this NestedInteger holds, if it holds a nested list#        Return None if this NestedInteger holds a single integer#        :rtype List[NestedInteger]#        """class NestedIterator(object):    def __init__(self, nestedList):        l = nestedList        self.res = []        if not l:            return        while l != []:            i = l.pop(0)            if i.isInteger():                self.res += i.getInteger(),            else:                l = i.getList() + l        """        Initialize your data structure here.        :type nestedList: List[NestedInteger]        """    def next(self):        return self.res.pop(0)        """        :rtype: int        """    def hasNext(self):        return self.res != []        """        :rtype: bool        """# Your NestedIterator object will be instantiated and called as such:# i, v = NestedIterator(nestedList), []# while i.hasNext(): v.append(i.next())


0 0
原创粉丝点击