This question evaluates understanding of linked list and pointer manipulation, the ability to implement a deep copy that preserves arbitrary random pointers, and analysis of time and space complexity within the Coding & Algorithms domain.

You are given the head of a singly linked list where each node has two pointers: next and random (random may point to any node or be null). Construct a deep copy of the list and return the head of the copied list. Aim for O(n) time and O(