Il problema è il seguente: ti vengono dati due numeri rappresentati come liste concatenate di cifre, dove ogni cifra è rappresentata da un nodo della lista.
Le liste rappresentano numeri non negativi e le cifre sono memorizzate in ordine inverso rispetto all’ordine in cui le cifre appaiono nel numero. Il tuo compito è quello di sommare i due numeri e restituire la somma come una lista concatenata.
Esempio: supponiamo che ci siano due numeri da sommare, il primo è rappresentato dalla lista concatenata 2→4→3 e il secondo dalla lista concatenata 5→6→4. Il primo numero corrisponde al numero 342 e il secondo al numero 465. La somma di questi due numeri è 807, che viene rappresentata dalla lista concatenata 7→0→8.
Soluzione
La soluzione coinvolge l’iterazione attraverso entrambe le liste e l’esecuzione dell’operazione di somma per ogni cifra portando l’eventuale riporto. Poiché le liste sono rappresentate in ordine inverso, la somma può essere eseguita facilmente con un semplice ciclo while che itera attraverso entrambe le liste contemporaneamente.
Di seguito la soluzione in C# completamente commentata: