For http://www.interviewcake.com/question/largest-stack
There's a simple solution that requires no additional space.
Disclaimer: Code is not tested or given the love it deserves.
Class Item():
def __init__(value):
self.value = value
self.next = None
self.next_largest = None
Class maxStack():
def __init__():
self.top = None
self.largest = None
def push(value):
i = Item(value)
i.next = self.top
self.top = i
if value >= self.largest:
i.next_largest = self.largest
self.largest = i
def pop():
v = self.top.value
if self.largest == self.top:
self.largest = self.largest.next_largest
self.top = self.top.next
return v
def getLargest():
return self.largest