File tree Expand file tree Collapse file tree 1 file changed +26
-12
lines changed
Expand file tree Collapse file tree 1 file changed +26
-12
lines changed Original file line number Diff line number Diff line change 11class MinStack {
2- Stack <Integer > st , minSt ;
2+ class Node {
3+ private int val , min ;
4+ Node next ;
35
4- public MinStack () {
5- st = new Stack <>();
6- minSt = new Stack <>();
6+ public Node (int v , int m ) {
7+ val = v ;
8+ min = m ;
9+ next = null ;
10+ }
711 }
812
9- public void push (int x ) {
10- int minVal = minSt .isEmpty () || minSt .peek () > x ? x : minSt .peek ();
13+ Node head ;
14+
15+ public MinStack () {
16+ head = null ;
17+ }
1118
12- st .push (x );
13- minSt .push (minVal );
19+ public void push (int val ) {
20+ if (head == null ) {
21+ head = new Node (val , val );
22+ } else {
23+ Node n = new Node (val , Math .min (val , head .min ));
24+ n .next = head ;
25+ head = n ;
26+ }
1427 }
1528
1629 public void pop () {
17- minSt .pop ();
18- st .pop ();
30+ if (head != null ) {
31+ head = head .next ;
32+ }
1933 }
2034
2135 public int top () {
22- return st . isEmpty () ? Integer . MAX_VALUE : st . peek () ;
36+ return head . val ;
2337 }
2438
2539 public int getMin () {
26- return minSt . isEmpty () ? Integer . MIN_VALUE : minSt . peek () ;
40+ return head . min ;
2741 }
2842}
You can’t perform that action at this time.
0 commit comments