Myntra stores large order totals as linked lists when the values may exceed standard integer limits. Each node contains one decimal digit, and the least significant digit appears first.
Given the heads of two non-empty linked lists, add the represented numbers and return the head of a new linked list containing the sum in the same reverse-digit format. Do not modify either input list.
The function receives l1 and l2, each a ListNode or None. A ListNode has integer field val and pointer field next. The function returns a new ListNode containing the sum. For test cases, linked lists are represented as arrays of node values, from head to tail.
def add_two_numbers(l1, l2):