From 6fb7bb1e0bb83870d77c6a1330f10ad863c93654 Mon Sep 17 00:00:00 2001 From: gruiz90 Date: Tue, 13 Oct 2020 18:07:31 -0300 Subject: [PATCH] Solution for Add Two Numbers LeetCode Problem in Go --- GO/add_two_numbers.go | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 GO/add_two_numbers.go diff --git a/GO/add_two_numbers.go b/GO/add_two_numbers.go new file mode 100644 index 00000000..8c775ca3 --- /dev/null +++ b/GO/add_two_numbers.go @@ -0,0 +1,49 @@ +// Link: https://leetcode.com/problems/add-two-numbers/ +package main + +type ListNode struct { + Val int + Next *ListNode +} + +func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode { + sol := new(ListNode) + var indexSol *ListNode + pass1 := false + + for { + sum := 0 + if l1 != nil || l2 != nil { + if l1 != nil { + sum = l1.Val + l1 = l1.Next + } + if l2 != nil { + sum += l2.Val + l2 = l2.Next + } + } else if !pass1 { + break + } + + if pass1 { + sum++ + } + if sum > 9 { + pass1 = true + } else { + pass1 = false + } + + var val = sum % 10 + if indexSol == nil { + sol.Val = val + indexSol = sol + } else { + indexSol.Next = &ListNode{Val: val} + indexSol = indexSol.Next + } + } + + return sol +}