From 700d61d49d55604aea7c05e3dc10c95691b7c634 Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Wed, 18 May 2022 16:36:17 -0400 Subject: [PATCH] Time: 50 ms (93.97%), Space: 13.3 MB (90.24%) - LeetHub --- 2-add-two-numbers/2-add-two-numbers.py | 38 ++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 2-add-two-numbers/2-add-two-numbers.py diff --git a/2-add-two-numbers/2-add-two-numbers.py b/2-add-two-numbers/2-add-two-numbers.py new file mode 100644 index 0000000..d86725b --- /dev/null +++ b/2-add-two-numbers/2-add-two-numbers.py @@ -0,0 +1,38 @@ +# Definition for singly-linked list. +# class ListNode(object): +# def __init__(self, val=0, next=None): +# self.val = val +# self.next = next +class Solution(object): + def addTwoNumbers(self, l1, l2): + """ + :type l1: ListNode + :type l2: ListNode + :rtype: ListNode + """ + sum = ListNode((l1.val + l2.val) % 10) + carry = (l1.val + l2.val) / 10 + follow = sum + num1 = l1.next + num2 = l2.next + while num1 != None or num2 != None or carry > 0: + if num1 == None and num2 == None: + follow.next = ListNode(carry) + carry = 0 + elif num1 == None: + follow.next = ListNode((num2.val + carry) % 10) + follow = follow.next + carry = (num2.val + carry) / 10 + num2 = num2.next + elif num2 == None: + follow.next = ListNode((num1.val + carry) % 10) + follow = follow.next + carry = (num1.val + carry) / 10 + num1 = num1.next + else: + follow.next = ListNode((num1.val + num2.val + carry) % 10) + follow = follow.next + carry = (num1.val + num2.val + carry) / 10 + num1 = num1.next + num2 = num2.next + return sum \ No newline at end of file