Write a function to find the sum of two numbers represented as linked lists, returning the result as a new linked list. Each node stores one decimal digit, and digits are stored in reverse order, with the ones digit first. Return a newly allocated list and do not modify either input. For example, [2,4,3] plus [5,6,4] produces [7,0,8]. Inputs contain at least one node and represent nonnegative integers.
def add_two_numbers(l1, l2):