Menu
CoddyTech

Add Two Numbers

Даны два неотрицательных целых числа, каждое из которых хранится в виде односвязного списка цифр, начиная с цифры младшего разряда. В первом списке узел i содержит цифру values1[i] и связан с узлом next1[i]. Второй список устроен так же, с next2 и values2. В обоих списках -1 обозначает конец списка, а голова — это узел 0. Узлы хранятся не в порядке следования в списке, поэтому переходите по связям.

Верните цифры суммы этих двух чисел, начиная с цифры младшего разряда.

Функция

addTwoNumbers(next1: integer-array, values1: integer-array, next2: integer-array, values2: integer-array) → integer-array
next1integer-array
индекс узла, на который ссылается каждый узел первого числа, или -1 для его последнего узла
values1integer-array
цифра, хранящаяся в каждом узле первого числа
next2integer-array
индекс узла, на который ссылается каждый узел второго числа, или -1 для его последнего узла
values2integer-array
цифра, хранящаяся в каждом узле второго числа
Возвращаетinteger-array
цифры суммы, начиная с младшей

Ограничения

  • 1 ≤ L1 ≤ 100, где L1 — длина next1 и values1.
  • 1 ≤ L2 ≤ 100, где L2 — длина next2 и values2.
  • 0 ≤ values1[i], values2[j] ≤ 9
  • Каждый элемент next1 — это -1 или индекс узла первого списка, а каждый элемент next2 — это -1 или индекс узла второго списка.
  • Начиная с узла 0, каждый список посещает каждый из своих узлов ровно один раз, а затем достигает -1. Цикла нет.
  • Ни одно число не начинается с нулей: последний узел списка содержит цифру, отличную от 0, если только список не состоит из одной цифры 0.

Примеры

Ввод
next1 = [2, -1, 1]values1 = [8, 6, 1]next2 = [2, -1, 1]values2 = [7, 5, 2]
Вывод
[5, 4, 1, 1]
Пояснение
Первый список посещает узлы 0, 2, 1 и считывает 8, 1, 6, число 618. Второй считывает 7, 2, 5, число 527. Их сумма равна 1145, поэтому ответ — 5, 4, 1, 1.
challenge icon

Дополнительный вопрос

Как бы вы сложили числа, если бы в списках первой хранилась самая значащая цифра?

Сбросить код
def addTwoNumbers(next1, values1, next2, values2):
    # Напишите код здесь

Тест #1

Тест #2

Тест #3

Аргументы

next1 = [2, -1, 1]
values1 = [8, 6, 1]
next2 = [2, -1, 1]
values2 = [7, 5, 2]

Ожидаемый вывод

[5, 4, 1, 1]