题目标题

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)

难度:中级

python 数据结构
参考解析
  1. import sys
  2. class Solution:
  3. def __init__(self):
  4. self.list = []
  5. self.minStack = [sys.maxsize]
  6. def push(self, node):
  7. self.list.append(node)
  8. if node < self.top():
  9. self.minStack.append(node)
  10. def pop(self):
  11. if self.list:
  12. popNum = self.list.pop(-1)
  13. if popNum == self.top():
  14. self.minStack.pop(-1)
  15. return popNum
  16. else:
  17. return None
  18. def top(self):
  19. if self.minStack:
  20. return self.minStack[-1]
  21. else:
  22. return None
  23. def min(self):
  24. return self.top()