题解 | #用两个栈实现队列#

用两个栈实现队列

https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6

package main

var stack1 []int
var stack2 []int

var len1 = 0
var len2 = 0

func Push(node int) {
	if len(stack1) <= len1 {
		stack1 = append(stack1, node)
	} else {
		stack1[len1] = node
	}
	len1++
}

func Pop() int {
	if len2 <= 0 {
		transfer()
	}
	len2--
	return stack2[len2]
}

func transfer() {
	for len1 > 0 {
		if len(stack2) <= len2 {
			stack2 = append(stack2, stack1[len1-1])
		} else {
			stack2[len2] = stack1[len1-1]
		}
		len1--
		len2++
	}
}

全部评论

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-30 19:49
起名星人:蛮离谱的,直接要求转投销售
投递汇川技术等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务