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
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))))