class LN:
def __init__(self,value,next=None):
self.value = value
self.next = next
def add_after(ll,value,new):
item = ll
while item is not None:
if item.value == value:
newnode = LN(new, item.next)
item.next = newnode
break
else:
item = item.next
meine add_after-Funktion nimmt eine Liste wie [2,1,8,2,2,4,2,5,2], und einen Wert und einen neuen Wert. Es fügt jedem Wert, der in der Liste angezeigt wird, den neuen Wert hinzu. Beispiel:verknüpfte Liste Funktion, die eine Liste zurückgeben
l = [2,1,8,2,2,4,2,5,2], Aufruf add_after (a, 2, -1) gibt 2 zurück -> - 1-> 1- > 8-> 2 -> - 1-> 2 -> - 1-> 4-> 2 -> - 1-> 5-> 2 -> - 1-> Keine. add -1 nach jeder 2 in der Liste
Das Problem mit meiner Funktion add_after ist, dass es nur den neuen Wert zu dem ersten Wert hinzufügen, der in der Liste erscheint.
Wenn ich beispielsweise add_after (ll, 2, -1) zur Liste [1,8,2,4,2,5,2] aufrufe, gibt es 1 -> 8-> 2 -> - zurück 1-> 4-> 2-> 5-> 2-> Keine
Kann mir jemand helfen, meine add_after-Funktion zu reparieren, damit sie auf alle Werte in der Liste angewendet werden kann? Danke vielmals.
Können Sie Ihre Beispiele erläutern? Ich verstehe nicht, wie du deine verknüpfte Liste bekommen hast oder was deine Parameter bedeuten. – drum
add_after (ll, value, neuer_Wert), wenn ll = [2,1,8,2,2,4,2,5,2], ruft add_after (ll, 2, -1) 2 -> - 1- zurück > 1-> 8-> 2 -> - 1-> 2 -> - 1-> 4-> 2 -> - 1-> 5-> 2 -> - 1-> Keine. es fügt jedem Wert einen neuen Wert hinzu. – zeyuxie
Mögliches Duplikat von [Ein Element an einem bestimmten Index in einer Liste einfügen und eine aktualisierte Liste zurückgeben] (http://stackoverflow.com/questions/14895599/insert-an-element-at-specific-index-in-a-list- und-return-updated-list) –