Альтернативное объединение связанного спискаPython

Программы на Python
Ответить
Anonymous
 Альтернативное объединение связанного списка

Сообщение Anonymous »

Я хотел поочередно объединить два элемента связанного списка. Я подсчитал длину этих двух связанных списков вручную, а затем создал узел с фиктивной головой, который будет использоваться для слияния. Я получаю ошибки "AttributeError: объект 'NoneType' не имеет атрибута 'elem'", и я думаю, что мой подход весьма неэффективен.
У меня есть несколько ошибок. ограничения, например, я не могу использовать встроенные функции или отрицательную индексацию.
class Node:
def __init__(self,elem,next = None):
self.elem,self.next = elem,next

def createList(arr):
head = Node(arr[0])
tail = head
for i in range(1,len(arr)):
newNode = Node(arr)
tail.next = newNode
tail = newNode
return head

def printLinkedList(head):
temp = head
while temp != None:
if temp.next != None:
print(temp.elem, end = '-->')
else:
print(temp.elem)
temp = temp.next
print()

def alternate_merge(head1, head2):
counter1 = 0
counter2 = 0

temp1 = head1
temp2 = head2

while temp1!=None:
counter1+=1
temp1 = temp1.next
while temp2!=None:
counter2+=1
temp2 = temp2.next

if counter1 5 --> 2 --> 7 --> 6 --> 3 --> 8 --> 9 --> 11 --> 4

print('==============Test Case 2=============')
head1 = createList(np.array([5, 3, 2, -4]))
head2 = createList(np.array([-4, -6, 1]))

print("Linked List 1:")
printLinkedList(head1)
print("Linked List 2:")
printLinkedList(head2)

head = alternate_merge(head1, head2)
print("Merged Linked List:")
printLinkedList(head) #This should print 5 → -4 -> 3 → -6 -> 2 -> 1 -> -4

print('==============Test Case 3=============')
head1 = createList(np.array([4, 2, -2, -4]))
head2 = createList(np.array([8, 6, 5, -3]))

print("Linked List 1:")
printLinkedList(head1)
print("Linked List 2:")
printLinkedList(head2)

head = alternate_merge(head1, head2)
print("Merged Linked List:")
printLinkedList(head) #This should print 4-> 8 → 2-> 6 → -2 → 5 → -4 -> -3


Подробнее здесь: https://stackoverflow.com/questions/792 ... list-merge
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»