题目描述
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。
代码:
<span style="color:#000099;">import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; import java.util.Set; public class Solution { public RandomListNode Clone(RandomListNode pHead) { HashMap<RandomListNode,RandomListNode> map = new HashMap<RandomListNode,RandomListNode>(); RandomListNode p = pHead; RandomListNode q = new RandomListNode(-1); while(p!=null){ RandomListNode t = new RandomListNode(p.label); map.put(p, t); p = p.next; q.next = t; q = t; } Set<Entry<RandomListNode,RandomListNode>> set = map.entrySet(); Iterator<Entry<RandomListNode,RandomListNode>> it = set.iterator(); while(it.hasNext()){ Entry<RandomListNode, RandomListNode> next = it.next(); next.getValue().random = map.get(next.getKey().random); } return map.get(pHead); } }</span>
时间: 2024-10-18 03:35:45