双向链表的搜索功能

时间:2015-06-21 08:22:06

标签: python indexing 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

我希望它在没有找到任何元素时返回-1。但是,它没有像我预期的那样工作。谁能告诉我为什么?

1 个答案:

答案 0 :(得分:0)

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

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

仍然基于索引从一个开始的假设,如果这是你喜欢的。通常,当从零开始时,offets / index更有用(就像在python中默认情况下在所有内置函数/运算符中一样)。