我有一个关于在我的双向链接列表类中专门为我的add_to_head方法更新self.tail的问题。我写了一个单独的函数来做这个,但我只是想知道是否有更有效的方法。 这是我的所作所为:
def add_to_head(self, data):
'''(input)-> None
takes any type of input and creates a node with that input as data.
Takes that node and adds it to the front of the list
'''
new_node = DLLNode(data)
if self.head == None:
self.head = self.tail = new_node
else:
self.head.prev = new_node
new_node.next = self.head
self.head = new_node
self.update_tail()
def update_tail(self):
'''(DLLList)->None
updates the tail of the DLLList
'''
current = self.head
while current != None:
current = current.next
current = self.tail
这假设在创建此类时self.tail和self.head已设置为None。我调用这个函数的唯一一次是在调用add_to_head方法时,因为当我添加到列表的末尾时,我已经在更新尾部了。 我可以用其他方式实现这个目标吗?