자바 구현 LeetCode 225 큐 스택 달성

큐 (225) 스택에 구현

다음 스택을 사용하여 큐 구현 :

푸시 (X) - 스택 위에 X 요소
팝업 () - 스택의 상단 제거
상단 () - 상단의 요소를 가져옵니다
(빈) - 반환 스택이 비어
참고 :

/ 다시 들여다이며, 푸시에서 팝업 - 당신은 기본 큐의 작업을 사용할 수 있습니다 앞, 크기, 이러한 작업은 합법적으로 비어 있습니다.
당신이 대기열을 지원하지 않을 수 있습니다 사용하는 언어입니다. 당신은 큐, 표준에 대한 작업만큼 큐를 시뮬레이션 할 목록이나 양단 큐 (양단 큐)를 사용할 수 있습니다.
당신은 모든 작업 (예를 들어, 빈 스택에 팝업 작동이나 상단 호출하지 않습니다) 유효하다고 가정 할 수있다.

class MyStack {
  private Queue<Integer> a;//输入队列
    private Queue<Integer> b;//输出队列
    
    public MyStack() {
        a = new LinkedList<>();
        b = new LinkedList<>();
    }
    
    public void push(int x) {
        a.offer(x);
        // 将b队列中元素全部转给a队列
        while(!b.isEmpty())
            a.offer(b.poll());
        // 交换a和b,使得a队列没有在push()的时候始终为空队列
        Queue temp = a;
        a = b;
        b = temp;
    }
    
    public int pop() {
        return b.poll();
    }
   
    public int top() {
        return b.peek();
    }
    
    public boolean empty() {
        return b.isEmpty();
    }
}

/**
 * Your MyStack object will be instantiated and called as such:
 * MyStack obj = new MyStack();
 * obj.push(x);
 * int param_2 = obj.pop();
 * int param_3 = obj.top();
 * boolean param_4 = obj.empty();
 */
출시 1349 원저 · 원 찬양 10000 + · 조회수 120 만 +

추천

출처blog.csdn.net/a1439775520/article/details/104565579