class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
return
last_node = self.head
while last_node.next:
last_node = last_node.next
last_node.next = new_node
def display(self):
current = self.head
while current:
print(current.data, end=" -> "
current = current.next
print("None"
def insert_list_after_target(list_main, target_element, list_insert):
"""
Вставляет элементы из списка list_insert после каждого вхождения target_element в list_main.
Args:
list_main: Основной связанный список.
target_element: Элемент, после которого нужно вставить.
list_insert: Связанный список, элементы которого вставляем.
"""
current = list_main.head
while current:
if current.data == target_element:
insert_node = list_insert.head
while insert_node:
new_node = Node(insert_node.data)
new_node.next = current.next
current.next = new_node
current = new_node
insert_node = insert_node.next
current = current.next
# Создаем основной список
main_list = LinkedList()
main_list.append(1)
main_list.append(2)
main_list.append(3)
main_list.append(2)
main_list.append(4)
print("Исходный основной список:"
main_list.display()
# Создаем список для вставки
insert_list = LinkedList()
insert_list.append(5)
insert_list.append(6)
insert_list.append(7)
print("Список для вставки:"
insert_list.display()
# Вызываем функцию вставки после каждого вхождения "2"
insert_list_after_target(main_list, 2, insert_list)
print("Результат после вставки:"
main_list.display()