我正在尝试为链接列表类创建一个附加函数,该函数可以根据传递的值在特定节点上附加项。
到目前为止,这是我想出的:
def append(linked_l, value):
if linked_l == None:
return linked_list(value)
new_node = linked_list(value)
head = linked_l
while linked_l.next != None:
if linked_l.value <= value <= linked_l.next.value:
new_node.next = linked_l.next
linked_l.next = new_node
break
linked_l = linked_l.next
return head
但是显然,这不能正常工作。
例如,如果我有sample = list_convert_ll([3, 5, 6, 8])
,则append(sample, 2)
必须能够将附加值(2
)降序排列,在这种情况下,结果将是{ {1}}。
如果是2, 3, 5, 6, 8
,然后是append(sample, 7)
。
我确实弄清楚了如何更改最终值,但是在如何处理这3种情况(值较低/较高或位于列表中间)时遇到了麻烦
3, 5, 6, 7, 8
仅在class linked_list:
def __init__(self, val, next=None):
self.val = val
self.next = next
def list_convert_ll(lis):
if lis == []:
return None
head = end = linked_list(l[0])
for value in lis[1:]:
end.next = linked_list(value)
rear = rear .next
return head
函数上,我不能修改或创建该类中的任何函数。