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

用两个栈实现队列

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++
	}
}

全部评论

相关推荐

笑死&nbsp;不是哥们离校了我真要睡街了&nbsp;加上还有几w的贷款&nbsp;不接受我准备去当三和大神
梦想是成为七海千秋:没事,hr这下就有底气了,下次遇到一个不接受的就说,你看,人家这学历都接受了,你凭什么不接受
点赞 评论 收藏
分享
喜欢飞来飞去的雪碧在刷代码:可以试一试字节
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务