1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
public class { public RandomListNode copyRandomList(RandomListNode head) { if (head == null) { return null; }
Map<RandomListNode, RandomListNode> map = new HashMap<>(); RandomListNode dummy = new RandomListNode(0); RandomListNode prev = dummy; while (head != null) { RandomListNode newNode; if (map.containsKey(head)) { newNode = map.get(head);
} else { newNode = new RandomListNode(head.label); map.put(head, newNode); }
RandomListNode oldRandom = head.random; if (oldRandom != null) { RandomListNode newRandom; if (map.containsKey(oldRandom)){ newRandom = map.get(head.random); } else { newRandom = new RandomListNode(oldRandom.label); map.put(oldRandom, newRandom); } newNode.random = newRandom; }
prev.next = newNode; prev = newNode; head = head.next;
} return dummy.next;
} }
|
近期评论