#Linked List#Math#Recursion Вам даны два непустых связанных списка, представляющих два неотрицательных целых числа. Цифры хранятся в обратном порядке , и каждый из их узлов содержит одну цифру. Сложите два числа и верните сумму в виде связанного списка. Вы можете предположить, что эти два числа не содержат начальных нулей, за исключением самого числа 0. Пример 1: Вход: l1 = [2,4,3], l2 = [5,6,4]
Выход: [7,0,8]
Объяснение: 342 + 465 = 807. Пример 2: Вход: l1 = [0], l2 = [0]
Выход: [0] Пример 3: Вход: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
Выход: [8,9,9,9,0,0,0,1] Ограничения: пример решения на go /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode { dummyHead := &ListNode{}
current := dummyHead
carry := 0
for l1 != nil || l2 != nil || carry != 0 {
sum := carry
if l1 != nil {
sum += l1.Val
l1 = l1.Next
}