链表——复制含有随机指针的链表 Posted on 2018-08-29 | In Tech , Data Structures and Algorithms 题目:随机指针是指指针的指向是随机的。 实现:利用HashMap的key-value结构 将所有链表的值进行复制,利用HashMap结构 将所有指针进行复制1’.next = 2’ 12345678910111213141516171819202122232425import java.util.HashMap;public class CopyListWithRand { /** * 复制含有随机指针的链表,利用哈希表结构(HashMap)来存储 * @param head * @return */ public static Node copyListWithRand(Node head) { HashMap<Node, Node> map = new HashMap<>(); Node cur = head; //1. 将所有的值进行复制 while(cur != null) { map.put(cur, new Node(cur.data)); //value是根据cur重新生成的对象 cur = cur.next; } cur = head; //2. 将所有的指针进行复制:1'.next = 2' while (cur != null) { map.get(cur).next = map.get(cur.next); map.get(cur).rand = map.get(cur.rand); cur = cur.next; } return map.get(head); //返回map结构的头节点 }}