def add(first_number, second_number): first_itr = first_number.head second_itr = second_number.head sum_head = None sum_tail = None regroup = 0 while first_itr != None and second_itr != None: sum = first_itr.data + second_itr.data sum += regroup regroup = math.trunc(sum / 10) digit = sum % 10 if sum_head == None: sum_head = Node(digit) sum_tail = sum_head else: new_node = Node(digit) sum_tail.next = new_node sum_tail = new_node first_itr = first_itr.next second_itr = second_itr.next while first_itr != None: sum = first_itr.data + regroup regroup = math.trunc(sum / 10) digit = sum % 10 if sum_head == None: sum_head = Node(digit) sum_tail = sum_head else: new_node = Node(digit) sum_tail.next = new_node sum_tail = new_node first_itr = first_itr.next while second_itr != None: sum = second_itr.data + regroup regroup = math.trunc(sum / 10) digit = sum % 10 if sum_head == None: sum_head = Node(digit) sum_tail = sum_head else: new_node = Node(digit) sum_tail.next = new_node sum_tail = new_node second_itr = second_itr.next if regroup > 0: new_node = Node(regroup) sum_tail.next = new_node sum_tail = new_node sum_head.print_nodes()