138. 随机链表的复制

138. 随机链表的复制

两次遍历,哈希映射

  1. """
  2. # Definition for a Node.
  3. class Node:
  4.     def __init__(self, x: int, next: 'Node' = None, random: 'Node' = None):
  5.         self.val = int(x)
  6.         self.next = next
  7.         self.random = random
  8. """
  9. class Solution:
  10.     def copyRandomList(self, head: 'Optional[Node]') -> 'Optional[Node]':
  11.         cur=head
  12.         dic={}
  13.         while cur:
  14.             dic[cur]=Node(cur.val)
  15.             cur=cur.next
  16.         cur=head
  17.         while cur:
  18.             dic[cur].next=dic.get(cur.next)
  19.             dic[cur].random=dic.get(cur.random)
  20.             cur=cur.next
  21.         return dic[head]

发表评论