You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list, also in reverse order.
You may assume the two numbers do not have leading zeros, except the number 0 itself.
l1: 2 -> 4 -> 3 l2: 5 -> 6 -> 4
Input: l1 = [2,4,3], l2 = [5,6,4] Output: [7,0,8] Explanation: 342 + 465 = 807, stored in reverse as [7,0,8].
l1: 0 l2: 0
Input: l1 = [0], l2 = [0] Output: [0] Explanation: 0 + 0 = 0.
l1: 9 -> 9 -> 9 -> 9 -> 9 -> 9 -> 9 l2: 9 -> 9 -> 9 -> 9
Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9] Output: [8,9,9,9,0,0,0,1] Explanation: 9999999 + 9999 = 10009998, stored in reverse as [8,9,9,9,0,0,0,1].
l1 = [2, 4, 3], l2 = [5, 6, 4]