剑指offer25——复杂链表的复制

通过哈希表来进行复杂链表的复制。map的key值是原有链表,value是复制后的链表。

RandomListNode* Clone(RandomListNode* pHead)
    {
         if(pHead==NULL  )
			return pHead ;
		unordered_map <RandomListNode *,RandomListNode *>mp;
		RandomListNode *t=pHead ;
		while(t!=NULL )
		{
			   mp[t]=new RandomListNode(t->label );
               t=t->next;
		}
		t=pHead ;
		while(t!=NULL )
		{
		   if(t->next )
		 	  mp[t]->next =mp[t->next ];
		   if(t->random  )
			  mp[t]->random =mp[t->random ];
		    t=t->next;
		}
		  return mp[pHead ];
    }

版权声明:本文为Tianqinse原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。