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

复杂链表的复制

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);
}

}

全部评论

相关推荐

06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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