剑指offer之两个队列模仿栈

两个队列模仿栈

欢迎关注作者简书
csdn传送门

/**
 * @program:
 * @description:
 * @author: zhouzhixiang
 * @create: 2018-10-29 21:02
 */
public class TwoQueueEqualsStack<T> {

    private LinkedList<T> queue1 = new LinkedList();
    private LinkedList<T> queue2 = new LinkedList();

    public T pop(){
        T re = null;
        if(queue1.size()==0 && queue2.size()==0) return null;
        if(queue1.size()!=0){
            while (queue1.size() > 0){
                re = queue1.pop();
                if(queue1.size() != 0){
                    queue2.add(re);
                }
            }
        }else if(queue2.size()!=0){
            while (queue2.size() > 0){
                re = queue2.pop();
                if(queue2.size() != 0){
                    queue1.add(re);
                }
            }
        }
        return re;
    }

    public void push(T t){
        if(queue1.size()==0 && queue2.size()==0){
            queue1.addLast(t);
        }
        if(queue1.size()!=0){
            queue1.addLast(t);
        }else if(queue2.size()!=0){
            queue2.addLast(t);
        }
    }

    public static void main(String[] args) {
        TwoQueueEqualsStack<Integer> t = new TwoQueueEqualsStack<>();
        t.push(1);
        t.push(2);
        t.push(3);
        t.push(4);
        t.push(5);

        System.out.println(t.pop());
    }
}

欢迎加入Java猿社区

欢迎加入Java猿社区.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容