题目描述
哈希表方法
样例
func copyRandomList(head *ListNode) *ListNode {
r := make(map[*ListNode]*ListNode)
t := &ListNode{Val: 0, Next: nil, Random: nil}
s := head
ans := t
for head != nil {
t.Next = &ListNode{Val: head.Val, Next: nil, Random: nil}
t = t.Next
r[head] = t
head = head.Next
}
for s != nil {
if s.Random != nil {
r[s].Random = r[s.Random]
}
s = s.Next
}
return ans.Next
}