Combina dos listas enlazadas ordenadas y devuélvelas como una nueva lista enlazada ordenada. La nueva lista enlazada debe formarse uniendo los nodos de dos listas enlazadas.

La clase para los nodos de la lista enlazada simple se define en la pestaña Pruebas. Las listas enlazadas se crean a partir de los datos de listas ordinarias y se proporcionan a la función. Cada nodo contiene un valor y la referencia al siguiente nodo.
class ListNode:
def __init__(self, val=0, next_element=None):
self.val = val
self.next_element = next_elementDevuelve la referencia al primer nodo de la secuencia de datos no vacía. Si una de las listas enlazadas es None, devuelve la referencia a la otra. Si ambas listas enlazadas son None, devuelve None. Si ambas listas enlazadas contienen datos, organiza las referencias de modo que se forme una nueva lista enlazada ordenada.
a1 = [1, 2, 4]
a2 = [1, 3, 4]
lst1 = ListNode(a1[0]) if a1 else None
if a1 and len(a1) > 1:
lst1.add_data(a1[1:])
lst2 = ListNode(a2[0]) if a2 else None
if a2 and len(a2) > 1:
lst2.add_data(a2[1:])
merged_lst = merge_two_lists(lst1, lst2)
print(merged_lst.all_nodes_data() if merged_lst else []) ➞ [1, 1, 2, 3, 4, 4]
b1 = [13, 69]
b2 = []
lst1 = ListNode(b1[0]) if b1 else None
if b1 and len(b1) > 1:
lst1.add_data(b1[1:])
lst2 = ListNode(b2[0]) if b2 else None
if b2 and len(b2) > 1:
lst2.add_data(b2[1:])
merged_lst = merge_two_lists(lst1, lst2)
print(merged_lst.all_nodes_data() if merged_lst else []) ➞ [13, 69]
lst1 = None
lst2 = None
merged_lst = merge_two_lists(lst1, lst2)
print(merged_lst.all_nodes_data() if merged_lst else []) ➞ []Intenta evitar crear nodos nuevos y copiar valores (enfócate en reorganizar self.next_element).