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

复杂链表的复制

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

/* public class RandomListNode { int label; RandomListNode next = null; RandomListNode random = null;

RandomListNode(int label) {
    this.label = label;
}

} */

import java.util.*;

public class Solution { public RandomListNode Clone(RandomListNode pHead) {

    HashMap<RandomListNode, RandomListNode> map = new HashMap();
    
    RandomListNode cur = pHead;
            //利用HashMap复制所有节点,value值只包括lable值,无指针
    while(cur != null){
        map.put(cur, new RandomListNode(cur.label));
        cur = cur.next;
    }
    //重置
    cur = pHead;
    //利用map中key的链表各节点的next和random指针,形成value中链表各节点的next和random指针,完成对复杂链表的深拷贝
    while(cur != null){
        map.get(cur).next = map.get(cur.next);
        map.get(cur).random = map.get(cur.random);
        cur = cur.next;
    }
    return map.get(pHead);
}

}

全部评论

相关推荐

07-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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