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

复杂链表的复制

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

/*
public class RandomListNode
{
    public int label;
    public RandomListNode next, random;
    public RandomListNode (int x)
    {
        this.label = x;
    }
}*/
using System.Collections.Generic;
class Solution
{
    public RandomListNode Clone(RandomListNode pHead)
    {
        // write code here
        if (pHead == null) return pHead;
        
        Dictionary<RandomListNode, RandomListNode> dic = new Dictionary<RandomListNode, RandomListNode>();
        RandomListNode newHead = new RandomListNode(0);
        RandomListNode iter = pHead;
        RandomListNode iterNew = newHead;
        while(iter!=null){
            RandomListNode tmp = new RandomListNode(iter.label);
            iterNew.next = tmp;
            dic[iter] = tmp;
            iter = iter.next;
            iterNew = iterNew.next;
        }
        foreach(RandomListNode node in dic.Keys){
            dic[node].random = node.random==null? null : dic[node.random];
        }
        return newHead.next;
    }

}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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