Go语言实现:【剑指offer】用两个栈实现队列
该题目来源于牛客网《剑指offer》专题。
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
Go语言实现:
var list1 = list.New()
var list2 = list.New()
//入队 123
func push(node int) {
//入栈 123
list1.PushFront(node)
}
//队先进先出 123
func pop() int {
if list2.Len() == 0 {
for list1.Len() != 0 {
//栈先进后出 321
front := list1.Front()
//入栈 321
list2.PushFront(list1.Remove(front).(int))
}
//栈先进后出 123
first := list2.Front()
return list2.Remove(first).(int)
}
return -1
}