add-two-numbers.py (930B)
1 # Definition for singly-linked list. 2 # class ListNode: 3 # def __init__(self, val=0, next=None): 4 # self.val = val 5 # self.next = next 6 class Solution: 7 8 def addTwoNumbers( 9 self, l1: Optional[ListNode], l2: Optional[ListNode] 10 ) -> Optional[ListNode]: 11 l1Val = convert(l1) 12 l2Val = convert(l2) 13 res = l1Val + l2Val 14 print(res) 15 finalLs = revert(res) 16 return finalLs 17 18 19 def revert(num): 20 if num == 0: 21 return ListNode(0) 22 23 retLs = [] 24 while num > 0: 25 toAdd = num % 10 26 retLs.append(toAdd) 27 num = num // 10 28 29 base = ListNode(retLs[0]) 30 last = base 31 for i in range(1, len(retLs)): 32 current = ListNode(retLs[i]) 33 last.next = current 34 last = current 35 36 return base 37 38 39 def convert(l1): 40 vals = "" 41 while l1 != None: 42 vals = str(l1.val) + vals 43 l1 = l1.next 44 return int(vals)