# 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, but you will probably need to define several functions to achieve that complexity.

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