剑指offer(四十八)之复杂链表的复制
Posted 奔跑着的国风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer(四十八)之复杂链表的复制相关的知识,希望对你有一定的参考价值。
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。
代码:
<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>
以上是关于剑指offer(四十八)之复杂链表的复制的主要内容,如果未能解决你的问题,请参考以下文章