Concat

Given two [!scala]List[Int][/!][!java|python]recursive list[/!] l1 and l2, return a new list with all elements of l1 followed by the elements of l2.

Your solution should be linear in time, with the help of helper functions.

You need to modify l1 beforehand so that the computations at each step of the recursion are in constant time.