Copying Linked Lists with Random Pointers
两个方法:
方法一:
1.不考虑随机指针的情况下复制链表;
2.在复制过程中建立一个以原链表节点地址为key,相应的复制链表节点地址为value的hash;
3.遍历原链表和新链表,得到原链表随机指针值,并复制给新链表。
方法二:
1.忽略随机指针值复制链表第n个节点并插入到第n个节点与第n+1个节点之间,以此为方式修改链表直到链表尾。
2.利用链表节点next指针指向节点的的拷贝这一已知,使用如下语句:
1 srcCurrent->next->random = srcCurrent->random->next;
3.分开链表
srcCurrent->next = srcCurrent->next->next; cpyCurrent->next = cpyCurrent->next->next;