赞
踩
这道题使用两个栈
来完成即可,一个入栈,一个出栈
。
出队列(返回队列头)流程图:
入队
入队直接在入栈
中插入元素即可,无需过多条件。
判断队列是否空
这个需要注意,要判断两个栈都为空
时,才能为空
public class leetcode232 { // 入栈 private Stack inStack = new Stack(); // 出栈 private Stack outStack = new Stack(); /** Initialize your data structure here. */ public leetcode232() { } // 出队 public int pop() { if(outStack.isEmpty()){ // 把inStack中的元素移到outStack中 while(!inStack.isEmpty()){ outStack.push(inStack.pop()); } } return (int) outStack.pop(); } // 返回队列中头元素 public int peek() { if(outStack.isEmpty()){ while(!inStack.isEmpty()){ outStack.push(inStack.pop()); } } // 只有这里调用的栈函数不一样 return (int) outStack.peek(); } // 判断列队是否为空 public boolean empty() { return inStack.isEmpty() && outStack.isEmpty(); } // 入队列 public void push(int x) { inStack.push(x); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。