/2. Add Two Numbers

2. Add Two Numbers

Medium
Linked Lists48.1% acceptance

Given two singly-linked lists, each representing a non-negative integer in reverse digit order (least significant digit first), compute their sum and return the result as a singly-linked list in the same reverse digit order. Each node contains a single digit. The input lists do not have leading zeros except for the number zero itself.

Example 1

Input: list_a = ListNode(1, ListNode(8)), list_b = ListNode(9, ListNode(1))

Output: ListNode(0, ListNode(0, ListNode(1)))

Explanation: 81 + 19 = 100, so output is [0,0,1]

Example 2

Input: list_a = ListNode(7), list_b = ListNode(3)

Output: ListNode(0, ListNode(1))

Explanation: 7 + 3 = 10, so output is [0,1]

Example 3

Input: list_a = ListNode(5, ListNode(6)), list_b = ListNode(5, ListNode(4))

Output: ListNode(0, ListNode(1, ListNode(1)))

Explanation: 65 + 45 = 110, so output is [0,1,1]

Constraints

  • 1 <= length of list_a <= 100
  • 1 <= length of list_b <= 100
  • 0 <= node value <= 9 for all nodes in list_a and list_b
  • Input lists represent numbers without leading zeros except for zero itself
Python (current runtime)

Case 1

Input: list_a = ListNode(3, ListNode(2, ListNode(1))), list_b = ListNode(7, ListNode(8, ListNode(9)))

Expected: ListNode(0, ListNode(1, ListNode(1, ListNode(1))))

Case 2

Input: list_a = ListNode(0), list_b = ListNode(1, ListNode(2))

Expected: ListNode(1, ListNode(2))

Case 3

Input: list_a = ListNode(6, ListNode(7, ListNode(8))), list_b = ListNode(4, ListNode(2, ListNode(1)))

Expected: ListNode(0, ListNode(0, ListNode(0, ListNode(1))))