复杂链表的复制,使用Map结构
原链表存在key中, 新链表存在value中。
将key链表的指针引用复制到 value链表上,返回value链表即可。
import java.util.HashMap; public class Solution { public RandomListNode Clone(RandomListNode pHead) { if(pHead == null){ return pHead; } RandomListNode p1 = pHead; RandomListNode p2 = pHead; HashMap<RandomListNode,RandomListNode> map = new HashMap<>(); while(p1!=null){ map.put(p1,new RandomListNode(p1.label)); p1 = p1.next; } while(p2 !=null){ if(p2.next != null){ map.get(p2).next = map.get(p2.next); }else map.get(p2).next = null; map.get(p2).random = map.get(p2.random); p2 = p2.next; } return map.get(pHead); } }