题解 | #JZ25 复杂链表的复制#

复杂链表的复制

http://www.nowcoder.com/practice/f836b2c43afc4b35ad6adc41ec941dba

复杂链表的复制,使用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);
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务