且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在python的链表中删除节点

更新时间:2023-01-17 18:23:44

删除是相同的,只要数据是唯一的即可.因此,总的来说更好的做法是,从列表中分离循环,而不是处理元素.它更具可读性,并且嵌套较少.如果未找到 data ,给出错误仍然会更好:

The deletes are identical as long as data is unique. So it is in general better, do separate looping through the list, from working on elements. It is more readable, and less nested. It would be still better, to give an error, if data is not found:

def delete(self, data):
    tmp = self.head
    prev = None
    while tmp:
        if data == tmp.data:
            break
        prev = tmp
        tmp = tmp.next
    else:
        raise ValueError('data not found')
    self.size -= 1
    if prev is None:
        self.head = tmp.next
    else:
        prev.next = tmp.next