A linked list is given such this each node contains an additional random pointer which could point to all node in the list or null.
Return a deep copy of the list.
Problem Solving Ideas:
We made a copy of the diagram in the Java for Leetcode 133 Clone graph , which is similar to the copy of the diagram, and the Java implementation is as follows:
Public Randomlistnode copyrandomlist (Randomlistnode head) {if (head = = NULL) return null; Hashmap<randomlistnode, randomlistnode> map = new Hashmap<randomlistnode, randomlistnode> (); Randomlistnode node = new Randomlistnode (Head.label); Randomlistnode headtemp = head, Nodetemp = Node;map.put (Head, node), while (headtemp.next! = null) {Nodetemp.next = new Ran Domlistnode (HeadTemp.next.label); Map.put (Headtemp.next, nodetemp.next); headtemp = Headtemp.next;nodetemp = Nodetemp.next;} Headtemp = Head;nodetemp = Node;while (headtemp!= null) {if (Map.containskey (headtemp.random)) Nodetemp.random=map.get ( Headtemp.random); headtemp = Headtemp.next;nodetemp = Nodetemp.next;} return node; }
Java for Leetcode 138 Copy List with Random Pointer