剑指 Offer 35. 复杂链表的复制
package leetcode; import java.util.HashMap; public class offer_35 { public Node copyRandomList(Node head) { //防止出现空链表 if(head==null) { return null; } //哈希表法 HashMap<Node, Node> map=new HashMap<Node, Node>(); Node node=head; while(node!=null) { //map中存入每个节点及其复制的节点 map.put(node, new Node(node.val)); node=node.next; } node=head; Node newHead=map.get(head); while(node!=null) { //将node.next对应的value与拷贝到当前复制节点的next map.get(node).next=map.get(node.next); //将node.random对应的value与拷贝到当前复制节点的random map.get(node).random=map.get(node.random); node=node.next; } return newHead; } }