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

复杂链表的复制

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

}
全部评论

相关推荐

10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
投票
我要狠拿offer:如果不是必须去成都绝对选九院呀,九院在四川top1研究所了吧
点赞 评论 收藏
分享
蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务