Python | Leetcode Python题解之第138题随机链表的复制

打印 上一主题 下一主题

主题 640|帖子 640|积分 1920

标题:

题解:
  1. class Solution:
  2.     def copyRandomList(self, head: 'Optional[Node]') -> 'Optional[Node]':
  3.         allNode=[] # 用一个数组存储所有结点
  4.         cur1=head
  5.         while cur1:
  6.             allNode.append(cur1)
  7.             cur1=cur1.next
  8.         n=len(allNode)
  9.         allRandom=[-1]*n # 用一个数组存储所有节点的random指向的结点下标(下标-1表null)
  10.         for i in range(n):
  11.             randomNode=allNode[i].random
  12.             if not randomNode:
  13.                 continue
  14.             for j in range(n):
  15.                 if randomNode==allNode[j]:
  16.                     allRandom[i]=j
  17.                     break
  18.         dummy=Node(0)
  19.         cur2=dummy
  20.         for i in range(n):# 创建n个新节点存储在原allNode数组中
  21.             newnode=Node(allNode[i].val)
  22.             allNode[i]=newnode
  23.         for i in range(n):# 将n个新节点串联起来
  24.             cur2.next=allNode[i]
  25.             cur2=cur2.next
  26.             if allRandom[i]!=-1:
  27.                 cur2.random=allNode[allRandom[i]]
  28.         return dummy.next
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天津储鑫盛钢材现货供应商

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表