双向链表的搜索函数

search function for doubly linked list

我有如下双向链表查找功能

def search (self, element):
    current=self.head
    index=1
    if current == None:
        return -1
    else:
        while current.data !=element:
            current=current.next_node
            index=index+1
        if current != None:
            return index
        else:
            return -1

我希望它在找不到元素时为return -1。但是,它并不像我预期的那样工作。谁能告诉我为什么?

这应该有效(我还没有检查过):

def search (self, element):
    current=self.head
    index=1
    while current != None:
        if current.data == element:
            return index
        current = current.next_node
        index += 1
    return -1

仍然基于索引从 1 开始的假设,如果您愿意的话。通常 offets/indexes 当它们从零开始时更有用(就像它们在 python 默认情况下在所有内置 functions/operators 中所做的那样)。