python 快速解决

复杂链表的复制

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

利用字典记录随机链表的键值关系
# -*- coding:utf-8 -*-
# class RandomListNode:
#     def __init__(self, x):
#         self.label = x
#         self.next = None
#         self.random = None
class Solution:
    # 返回 RandomListNode
    def Clone(self, pHead):
        # write code here
        lHead = RandomListNode(0)
        h_temp = lHead
        pHead1 = pHead
        new_key = {}
        while pHead1:
            value = pHead1.label
            temp = RandomListNode(value)
            new_key[value]=temp
            h_temp.next = temp
            h_temp = h_temp.next
            pHead1=pHead1.next
        while pHead:
            if pHead.random:
                
                new_key[pHead.label].random = new_key[pHead.random.label]
            pHead = pHead.next
        return lHead.next
                
                
        
            
时间复杂度o(n),空间复杂度o(n)

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
05-27 11:41
已编辑
点赞 评论 收藏
转发
4 收藏 评论
分享
牛客网
牛客企业服务