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

用两个栈实现队列

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

全部评论

相关推荐

点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务