【leetcode】155. 最小栈( Min Stack )
题目描述 【leetcode】155. 最小栈( Min Stack ) 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 第一次解答 思路: 弄一个单链表,top永远指向单链表起始 添加元素在单链表头部添加 为了实现常量检索最小值,每个单链表元素额外附带一个元素min min存储了该元素添加后,此时stack内的最小值 class cMyLink { public : cMyLink * next ; int val ; int min_val ; cMyLink ( int x ) { next = nullptr ; val = x ; } private : cMyLink ( ) { } } ; class MinStack { public : cMyLink * p_top ; /** initialize your data structure here. */ MinStack ( ) { p_top = nullptr ; } void push ( int x ) { cMyLink * p_top_last = p_top ; p_top = new cMyLink ( x