题目要求:使用队列实现栈的push、pop、top(取栈顶元素)、empty操作。
思路:首先的思路就是使用两个队列,入栈的操作不变,如果想弹出一个元素,先将队列1元素出队,只保留一个元素,此元素就是模拟栈弹出的元素。
但实际上我们使用一个队列就可以模拟栈操作,只需要将队列中元素出队后再继续入队,如对列此时有n个元素,我们出队再入队n-1个元素,那么接下来出队的元素就相当于栈弹出的元素。
leetcode实战:
代码实现:
题目要求:使用队列实现栈的push、pop、top(取栈顶元素)、empty操作。
思路:首先的思路就是使用两个队列,入栈的操作不变,如果想弹出一个元素,先将队列1元素出队,只保留一个元素,此元素就是模拟栈弹出的元素。
但实际上我们使用一个队列就可以模拟栈操作,只需要将队列中元素出队后再继续入队,如对列此时有n个元素,我们出队再入队n-1个元素,那么接下来出队的元素就相当于栈弹出的元素。
leetcode实战:
代码实现: