Leetcode: Add Two Numbers, Python3
December 17, 2019•152 words
1563 / 1563 test cases passed
Status: Accepted
Runtime: 56 ms (beats 99.02% of submissions)
Memory Usage: 12.6 MB (beats 100% of submissions)
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
cur, carry = self.addVals(l1.val, l2.val, 0)
res = ListNode(cur)
thisRes = res
while((l1.next != None) or (l2.next != None)):
if l1.next != None:
l1 = l1.next
val1 = l1.val
else:
val1 = 0
if l2.next != None:
l2 = l2.next
val2 = l2.val
else:
val2 = 0
cur, carry = self.addVals(val1, val2, carry)
thisRes.next = ListNode(cur)
thisRes = thisRes.next
if carry > 0:
thisRes.next = ListNode(carry)
return res
def addVals(self, val1, val2, carry):
cur = val1 + val2 + carry
if cur > 9:
carry = 1
cur -= 10
else:
carry = 0
return cur, carry