Menu
CoddyTech

Add Two Numbers

Se te dan dos números enteros no negativos, cada uno almacenado como una lista enlazada simple de sus dígitos, con el dígito menos significativo primero. En la primera lista, el nodo i contiene el dígito values1[i] y apunta al nodo next1[i]. La segunda lista funciona de la misma manera con next2 y values2. En ambas listas, -1 marca el final de la lista y la cabeza es el nodo 0. Los nodos no están almacenados en el orden de la lista, así que sigue los enlaces.

Devuelve los dígitos de la suma de los dos números, con el dígito menos significativo primero.

Función

addTwoNumbers(next1: integer-array, values1: integer-array, next2: integer-array, values2: integer-array) → integer-array
next1integer-array
el índice del nodo al que apunta cada nodo del primer número, o -1 para su último nodo
values1integer-array
el dígito que contiene cada nodo del primer número
next2integer-array
el índice del nodo al que se conecta cada nodo del segundo número, o -1 para su último nodo
values2integer-array
el dígito que contiene cada nodo del segundo número
Devuelveinteger-array
los dígitos de la suma, empezando por el menos significativo

Restricciones

  • 1 ≤ L1 ≤ 100, donde L1 es la longitud de next1 y de values1.
  • 1 ≤ L2 ≤ 100, donde L2 es la longitud de next2 y de values2.
  • 0 ≤ values1[i], values2[j] ≤ 9
  • Cada elemento de next1 es -1 o un índice de nodo de la primera lista, y cada elemento de next2 es -1 o un índice de nodo de la segunda lista.
  • Empezando en el nodo 0, cada lista visita cada uno de sus nodos exactamente una vez y después llega a -1. No hay ningún ciclo.
  • No hay ningún número con ceros iniciales: el último nodo de una lista contiene un dígito distinto de 0, a menos que la lista sea el dígito 0.

Ejemplos

Entrada
next1 = [2, -1, 1]values1 = [8, 6, 1]next2 = [2, -1, 1]values2 = [7, 5, 2]
Salida
[5, 4, 1, 1]
Explicación
La primera lista visita los nodos 0, 2, 1 y lee 8, 1, 6, el número 618. La segunda lee 7, 2, 5, el número 527. Su suma es 1145, así que la respuesta es 5, 4, 1, 1.
challenge icon

Para ir más allá

¿Cómo sumarías los números si las listas almacenaran primero el dígito más significativo?

Restablecer código
def addTwoNumbers(next1, values1, next2, values2):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumentos

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

Salida Esperada

[5, 4, 1, 1]