Microsoft Interview Question

Clone the single linked list with one additional random pointer in each node. Find diameter of a tree.