LC 0284 [M] Peeking Iterator - ALawliet/algorithms GitHub Wiki
this is kind of a dumb question but it's basically a list that caches the next element so it can look ahead
class PeekingIterator:
def __init__(self, iterator):
self.iterator = iterator
self.buffer = self.iterator.next() if self.iterator.hasNext() else None
def peek(self):
return self.buffer
def next(self):
tmp = self.buffer
self.buffer = self.iterator.next() if self.iterator.hasNext() else None
return tmp
def hasNext(self):
return self.buffer != None