我可以检查一下吗 我们如何从单个链表中删除最后一个节点?
这和我们删除第一个节点的方式一样吗?
删除第一个节点
def deleteAtHead(self):
temp = self.head
self.head = self.head.next
delete temp
删除最后一个节点
def deleteAtTail(self):
prev = None
temp = self.tail
self.tail= self.tail.prev
delete temp
最佳答案
您必须从头部开始爬回到尾部
。
尾部是第一个没有下一个的节点:next is None
。
跟踪倒数第二个 (prev
),将其 next
设置为 None
。
def deleteAtTail(self): # remove_last would likely be a better name
""" removes the last element of the singly linked list
"""
temp = self.head
while(temp.next is not None):
prev = temp
temp = temp.next
prev.next = None
将 prev.next
设置为 None
会删除尾节点(如果没有其他引用,它将被垃圾回收)
关于python - 删除单链表中的最后一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36514277/