本文共 757 字,大约阅读时间需要 2 分钟。
题目
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 知识点 栈:先进后出 队列:先进先出 思路 最开始认为这两个性质很好互相转换,但是很模糊,就需要在草稿纸上写出实例才能摸清楚关系。 最重要的就是FIFO和FILO互相转化: 每次都往stack1中push数字;(例此时有stack1{1,2,3,4}) 当需要pop时: 1.若stack2中没有数字,则依次将stack1中的数字pop出来,push进stack2{4,3,2,1}; 2.当stack2中有数字时,直接pop,pop后:stack2{3,2,1};pop出4,实现先进先出; 再需要push数字时,依旧往stack1中push,其他操作同上。 代码import java.util.Stack;public class Solution { Stackstack1 = new Stack (); Stack stack2 = new Stack (); public void push(int node) { stack1.push(node); } public int pop() { if(stack2.size()<=0){ while(stack1.size()>0){ stack2.push(stack1.pop()); } } return stack2.pop(); }}
转载地址:http://dffef.baihongyu.com/