copy list with random pointer reimpl