classListNode: def__init__(self, x): self.val = x self.next = None
classSolution: defaddTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: def_reverse(l): if l.next: last = _reverse(l.next) l.next.next = l l.next = None return last return l
l1e = _reverse(l1) l2e = _reverse(l2) new_l = ListNode(0) head = new_l c = 0 import ipdb; ipdb.set_trace() while l1e and l2e: new_val = l1e.val + l2e.val if c==1: new_val += 1 c = 0 if new_val >= 10: new_val -= 10 c = 1
new_l.val = new_val next_n = None if l1e.nextand l2e.nextor c: next_n = ListNode(c) new_l.next = next_n new_l = next_n l1e = l1e.next l2e = l2e.next if l2e: l1e = l2e ifnot l1e and c: l1e = ListNode(0) while l1e: new_l.val = l1e.val new_l.val += c c = 0 if new_l.val >= 10: c = 1 new_l.val -= 10 l1e = l1e.next if l1e: new_l.next = ListNode(0) new_l = new_l.next else: new_l.next = ListNode(1)
classSolution: defaddTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: s1, s2 = [], [] while l1: s1.append(l1.val) l1 = l1.next while l2: s2.append(l2.val) l2 = l2.next ans = None carry = 0 while s1 or s2 or carry != 0: a = 0ifnot s1 else s1.pop() b = 0ifnot s2 else s2.pop() cur = a + b + carry carry = cur // 10 cur %= 10 curnode = ListNode(cur) curnode.next = ans ans = curnode return ans