《剑指offer》刷题笔记。如有更好解法,欢迎留言。
关键字:栈
队列
题目描述:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路:
- 队列特点在于先进先出。
- 进队列直接使用 inStack 完成。
- 模拟出队列时,先把 inStack 内的成员按序进 outStack ,这个时候方向正好转换,再次出栈。此时出栈的元素为原来 inStack 的栈底元素。(注意:当outStack 内还有元素时,先把这些元素出栈,再进栈)

- 完整代码
let inStack = [];
let outStack = [];
function push(node)
{
inStack.push(node);
}
function pop()
{
// 判断outStack内还有没有元素
if(!outStack.length){
while(inStack.length){
outStack.push(inStack.pop());
}
}
return outStack.pop();
}
网友评论