题目链接
list包中List是一个双向链表,可以任意插入删除元素
type CQueue struct {
stack1,stack2 *list.List
}
func Constructor() CQueue {
return CQueue{
//New返回指针类型
stack1:list.New(),
stack2:list.New(),
}
}
func (this *CQueue) AppendTail(value int) {
this.stack1.PushBack(value)
}
func (this *CQueue) DeleteHead() int {
if this.stack2.Len()==0{
for this.stack1.Len()>0{
this.stack2.PushBack(this.stack1.Remove(this.stack1.Back()))
}
}
if this.stack2.Len()!=0{
//返回指针类型
elem:=this.stack2.Back()
//按照指针类型删除
this.stack2.Remove(elem)
return elem.Value.(int)
}
return -1
}
/**
* Your CQueue object will be instantiated and called as such:
* obj := Constructor();
* obj.AppendTail(value);
* param_2 := obj.DeleteHead();
*/
主要注意go的语法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。