题解 | #用两个栈实现队列#
用两个栈实现队列
https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
using System.Collections.Generic;
class Solution {
Stack<int> stack1 = new Stack<int>();
Stack<int> stack2 = new Stack<int>();
public void push(int node) {
if (stack1.Count == 0 && stack2.Count == 0) {
stack1.Push(node);
} else if (stack1.Count != 0 && stack2.Count == 0) {
stack2.Push(node);
} else if (stack1.Count != 0 && stack2.Count != 0) {
while (stack2.Count != 0) {
stack1.Push(stack2.Pop());
}
stack2.Push(node);
while (stack1.Count != 1) {
stack2.Push(stack1.Pop());
}
} else if (stack1.Count == 0 && stack2.Count != 0) {
stack1.Push(stack2.Pop());
stack2.Push(node);
}
}
public int pop() {
if (stack1.Count != 0) return stack1.Pop();
return stack2.Pop();
}
}
#用两个栈实现队列#
查看7道真题和解析
