Я пытаюсь создать функцию добавления для класса связанного списка , который может добавлять элемент в определенный узел в зависимости от передаваемого значения.
Пока это то, что я придумал:
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
) в порядке убывания, в этом случае результат будет 2, 3, 5, 6, 8
.
если это append(sample, 7)
, то 3, 5, 6, 7, 8
.
Я выяснил, как изменить конечное значение, но у меня возникли проблемы, как справиться с этими 3 случаями (значение, которое ниже / выше или находится в середине списка)
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
Я не могу изменять или создавать какие-либо функции в классе, просто только для функции append()
.