gpt4 book ai didi

Python 链表搜索

转载 作者:行者123 更新时间:2023-11-28 16:28:41 25 4
gpt4 key购买 nike

我正在用 Python 编写链表代码,下面是部分代码:

class LinkedList:
def __init__(self):
self.head = None

def search(self, n, value):
if n is None:
return False
elif n.data == value:
return True
else:
return search(n.next, value)

def append(self, new_value):
if self.head is None:
self.head = LinkedListNode(new_value)
else:
node = self.head
while node.next != None:
node = node.next
node.next = LinkedListNode(new_value)

def remove(self, position):
if position > 0:
node = self.head
l = 0
while node != position - 1:
l += 1
node = node.next
node.next = node.next.next
elif position == 0:
self.head = self.head.next

我只是想知道如何实现 search() 方法?我认为我的想法是正确的,但它行不通。谢谢!

最佳答案

在同一个类中调用方法时,需要用self来限定。

def search(self, n, value):
if n is None:
return False
elif n.data == value:
return True
else:
return self.search(n.next, value) # <--

顺便说一句,当前的search 实现要求用户传递n(可能是LinkedList.head)。所以我会做一个包装器从头开始搜索,所以用户不需要每次都指定 linked_list_instance.head:

def search_from_head(self, value):
return self.search(self.head, value)

关于Python 链表搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34326494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com