工商营业执照咨询热线山东服务好的seo
牛客网: BM42
题目: 用两个栈模拟队列
思路: stack1, stack2两个栈,入队只选择stack1, 出队只选择stack2, 如果stack2为空,将stack1元素全部出栈并入栈stack2。
代码:
// gopackage mainvar stack1 [] int
var stack2 [] intfunc Push(node int) {stack1 = append(stack1, node)
}func Pop() int {if len(stack2) == 0 {for len(stack1) > 0 {node := stack1[len(stack1)-1]stack2 = append(stack2, node)stack1 = stack1[:len(stack1)-1]}}if len(stack2) > 0 {node := stack2[len(stack2)-1]stack2 = stack2[:len(stack2)-1]return node}return -1
}