Java Solution using two stacks beats 92%


  • 0
    class MyQueue {
    private Stack<Integer> s1=new Stack<Integer>();
    private Stack<Integer> s2=new Stack<Integer>();
    // Push element x to the back of queue.
    public void push(int x) {
        s1.push(x);
    }
    
    // Removes the element from in front of queue.
    public void pop() {
        if(empty()) return;
        while(!empty()){
            s2.push(s1.pop());
        }
        int top=s2.pop();
        while(!s2.empty()){
            s1.push(s2.pop());
        }
    }
    
    // Get the front element.
    public int peek() {
        if(empty()) return 0;
        while(!empty()){
            s2.push(s1.pop());
        }
        int top=s2.peek();
        while(!s2.empty()){
            s1.push(s2.pop());
        }
        return top;
    }
    
    // Return whether the queue is empty.
    public boolean empty() {
        return s1.empty();
    }
    

    }


Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.