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)
阿里云工作强度 644人发布