zoukankan      html  css  js  c++  java
  • 剑指 Offer 09. 用两个栈实现队列

    import java.util.Stack;
    
    public class CQueue {
        Stack<Integer> stack1 = new Stack<>();
        Stack<Integer> stack2 = new Stack<>();
        public CQueue() {
    
        }
    
        public void appendTail(int value) {
            stack1.push(value);
        }
    
        public int deleteHead() {
            if(stack1.isEmpty()) return -1;
            while(!stack1.isEmpty()){
                stack2.push(stack1.pop());
            }
            int val = stack2.pop();
            while (!stack2.isEmpty()){
                stack1.push(stack2.pop());
            }
            return val;
        }
    }

    import java.util.Stack;
    
    public class CQueue {
        Stack<Integer> stack1 = new Stack<>();
        Stack<Integer> stack2 = new Stack<>();
        public CQueue() {
            
        }
    
        public void appendTail(int value) {
            stack1.push(value);
        }
    
        public int deleteHead() {
            if(stack1.isEmpty() && stack2.isEmpty()) return -1;
            if(stack2.isEmpty()) {
                while (!stack1.isEmpty()) {
                    stack2.push(stack1.pop());
                }
                return stack2.pop();
            }else{
                return stack2.pop();
            }
        }
    }

     不用删除一个元素之后,就立刻将stack2中的元素复原到stack1中。

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    个人总结21
    个人总结08
    个人总结07
    构建之法读后感01
    学习进度表 03
    四则运算3
    求最大值
    学习进度表02
    四则运算 2
    学习进度表01
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/13451475.html
Copyright © 2011-2022 走看看