Posterior a consultar con especialistas en la materia, programadores de deferentes áreas y maestros hemos dado con la respuesta al problema y la compartimos en esta publicación.
Ejemplo: agregar dos listas enlazadas python
classNode:def__init__(self, x, nextNode =None):
self.val = x
self.next= nextNode
defprintList(l):
value =[]while(l):
value.append(l.val)
l = l.nextprint(' -> '.join(map(str, value)))defaddTwoNumbers(l1, l2):"""
:type l1: Node
:type l2: Node
:rtype: Node
"""sum= l1.val + l2.val
carry =int(sum/10)
l3 = Node(sum%10)
p1 = l1.next
p2 = l2.next
p3 = l3
while(p1 !=Noneor p2 !=None):sum= carry +( p1.val if p1 else0)+( p2.val if p2 else0)
carry =int(sum/10)
p3.next= Node(sum%10)
p3 = p3.next
p1 = p1.nextif p1 elseNone
p2 = p2.nextif p2 elseNoneif(carry >0):
p3.next= Node(carry)return l3
#789
l1 = Node(9, Node(8, Node(7)))
printList(l1)#478
l2 = Node(8, Node(7, Node(4)))
printList(l2)
l3 = addTwoNumbers(l1, l2)
printList(l3)print()#342
l1 = Node(2, Node(4, Node(3)))
printList(l1)#465
l2 = Node(5, Node(6, Node(4)))
printList(l2)
l3 = addTwoNumbers(l1, l2)
printList(l3)
Nos encantaría que puedieras difundir este tutorial si te fue útil.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)