Recursion, requires copying in list :(