描述
按链表实现队列。支持以下基本方法:
enqueue(item).将新元素放入队列中。
dequeue(). 将第一个元素移出队列,返回它。
样例
例1:
输入:
enqueue(1)
enqueue(2)
enqueue(3)
dequeue() // return 1
enqueue(4)
dequeue() // return 2
例2:
输入:
enqueue(10)
dequeue()// return 10
class MyQueue:
def __init__(self):
self.dummy = ListNode(-1)
self.tail = self.dummy
"""
@param: item: An integer
@return: nothing
"""
def enqueue(self, item):
self.tail.next = ListNode(item)
self.tail = self.tail.next
"""
@return: An integer
"""
def dequeue(self):
# write your code here
if self.dummy.next is None:
return -1
if self.dummy.next == self.tail:
self.tail = self.dummy
ans = self.dummy.next.val
self.dummy.next = self.dummy.next.next
return ans
官方题解:
class MyQueue(object):
def __init__(self):
# do some intialize if necessary
self.first, self.last = None, None
# @param {int} item an integer
# @return nothing
def enqueue(self, item):
# Write yout code here
if self.first is None:
self.first = Node(item)
self.last = self.first
else:
self.last.next = Node(item)
self.last = self.last.next
# @return an integer
def dequeue(self):
# Write your code here
if self.first is not None:
item = self.first.val
self.first = self.first.next
return item
return -1000
class Node():
def __init__(self, _val):
self.next = None
self.val = _val