您的位置:首页 > 游戏 > 手游 > Python | Leetcode Python题解之第138题随机链表的复制

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

2024/11/19 2:41:31 来源:https://blog.csdn.net/Mopes__/article/details/139538283  浏览:    关键词:Python | Leetcode Python题解之第138题随机链表的复制

题目:

题解:

class Solution:def copyRandomList(self, head: 'Optional[Node]') -> 'Optional[Node]':allNode=[] # 用一个数组存储所有结点cur1=headwhile cur1:allNode.append(cur1)cur1=cur1.nextn=len(allNode)allRandom=[-1]*n # 用一个数组存储所有节点的random指向的结点下标(下标-1表null)for i in range(n):randomNode=allNode[i].randomif not randomNode:continuefor j in range(n):if randomNode==allNode[j]:allRandom[i]=jbreakdummy=Node(0)cur2=dummyfor i in range(n):# 创建n个新节点存储在原allNode数组中newnode=Node(allNode[i].val)allNode[i]=newnodefor i in range(n):# 将n个新节点串联起来cur2.next=allNode[i]cur2=cur2.nextif allRandom[i]!=-1:cur2.random=allNode[allRandom[i]]return dummy.next

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com