package main
// type Node struct {
// Val int
// Next *Node
// }
func (_ Solution) AddTwoNumbers(head1 *Node, head2 *Node) *Node {
var head *Node
var tail *Node
current1 := head1
current2 := head2
carry := 0
for current1 != nil || current2 != nil || carry != 0 {
sum := carry
if current1 != nil {
sum += current1.Val
current1 = current1.Next
}
if current2 != nil {
sum += current2.Val
current2 = current2.Next
}
newNode := &Node{
Val: sum % 10,
}
carry = sum / 10
if head == nil {
head = newNode
tail = newNode
} else{
tail.Next = newNode
tail = tail.Next
}
}
return head
}
Yechim qanday, sodda dastlab carry haqida bilishingizni xoxlar edim buyerda
xop bunday boladi biz mos ravishda Linked List dagi qiymatlarni qoshishimiz kerak va agar ularni qiymat uzunligi bir xil bolmasa orniga 0 qoyib ketamiz va ayan bir shart bor bizda faqat sumda yani qoyiladigan son qoldiq son
misol uchun 23 bolsa qoshilgan sum uni 10 ga bolib qoldiqini yozamiz, va dilga saqlaymiz dilga 2 tushadi u carry keyingi xonaga otadigan son
masalan
[0, 9, 0] va [0,1] berilgan bolsa
mos ravishda qoshamiz => [0, 0, 2] carry bu xolatda 0, 1, 0 boladi
Hali izoh yo'q. Birinchi bo'ling!