12题 Min Stack

Min Stack

Description
Implement a stack with following functions:

push(val) push val into the stack
pop() pop the top element and return it
min() return the smallest number in the stack
All above should be in O(1) cost

class Node {                    
	public int val ;
	public Node next ;
	public Node(int value){
		this.val = value ;
	}
}
public class MinStack {
    public Node dummy ;
    
    
    public MinStack() {
        // do intialization if necessary
        dummy = new Node(-1);

    }

    /*
     * @param number: An integer
     * @return: nothing
     */
    public void push(int number) {
        // write your code here
        Node node = new Node(number) ;
        node.next = dummy.next ;
        dummy.next = node ;

    }

    /*
     * @return: An integer
     */
    public int pop() {
        // write your code here
        int eve = dummy.next.val ;
        dummy.next = dummy.next.next ;
        return eve ;
    }

    /*
     * @return: An integer
     */
     public Node head ;
    public int min() {
        // write your code here
        
        int minValue = Integer.MAX_VALUE ;
        head = dummy.next ;
         
        while(head != null){
             if(head.val < minValue){
                 minValue = head.val ;
             }
             head = head.next ;
        }
     return minValue ;

    }
}

版权声明:本文为caomengying原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。