Python从链表中删除元素

时间:2018-04-27 01:27:48

标签: python

假设在调用remov()时列表中至少有一个元素,但是,如果只有一个元素,则在删除该元素时需要将head设置为None。

def remov(self): 
    current = self.head
    previous = current
    while current.get_next() != None:
        previous = current
        current = current.get_next()
    previous.set_next(None)
    return current.get_data()

当列表中只有1个元素时,我无法返回正确的答案。

示例:

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您进行一些谷歌搜索,您可以轻松找到正确的链接列表实现。 我从this tutorial

中提取了以下代码
def remove(self,item):
    current = self.head
    previous = None
    found = False
    while not found:
        if current.getData() == item:
            found = True
        else:
            previous = current
        current = current.getNext()

    if previous == None:
        self.head = current.getNext()
    else:
        previous.setNext(current.getNext())

注意:你必须要小心,始终最后一个元素的下一个节点应该是None