news 2026/5/28 23:09:41

Hot-138 随即链表的复制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hot-138 随即链表的复制

1、解法1:直接用dict / map 来做Node到Node的映射:

-O(n)时间,O(n)空间:

""" # Definition for a Node. class Node: def __init__(self, x: int, next: 'Node' = None, random: 'Node' = None): self.val = int(x) self.next = next self.random = random """ class Solution: def copyRandomList(self, head: 'Optional[Node]') -> 'Optional[Node]': # 解法1:使用O(n)时间和O(n)空间的哈希表法解决: if head==None: return None dic = {} cur = head while cur != None: dic[cur] = Node(cur.val) cur = cur.next # 开始复制 cur = head while cur != None: if cur.next != None: dic[cur].next = dic[cur.next] if cur.random != None: dic[cur].random = dic[cur.random] cur = cur.next return dic[head] # 解法2:使用O(n)时间和O(1)空间的解法

2、解法2:拼接链表-利用相邻关系-拆分链表

-O(n)时间,O(1)空间;

""" # Definition for a Node. class Node: def __init__(self, x: int, next: 'Node' = None, random: 'Node' = None): self.val = int(x) self.next = next self.random = random """ class Solution: def copyRandomList(self, head: 'Optional[Node]') -> 'Optional[Node]': # 解法2:使用O(n)时间和O(1)空间的解法 # 拼接+拆分法:利用相邻关系替代dict/map if not head: return None cur = head # 1、复制各个节点,并且完成拼接: while cur: tmp = Node(cur.val) tmp.next = cur.next cur.next = tmp cur = tmp.next # 2、根据相邻关系,构建random指针 cur = head while cur: if cur.random: cur.next.random = cur.random.next cur = cur.next.next # 3、拆分链表: cur = head.next res = cur pre = head while cur.next != None: pre.next = pre.next.next cur.next = cur.next.next pre = pre.next cur = cur.next return res
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 23:08:07

为什么MySQL非聚簇索引仅索引条目有序,数据行无序?

它的本质是:在 InnoDB 中,非聚簇索引(二级索引)是一棵独立的 B 树,其叶子节点仅存储“索引列值 主键值”。它只保证“索引列主键”这个组合在 B 树内部有序,而它所指向的数据行物理存储在聚簇索引中&#…

作者头像 李华
网站建设 2026/5/28 23:08:03

论文AI率太高过不了审?免费降AI保姆级攻略亲测好用

最近身边不少同学都在吐槽论文的“第二道关卡”:好不容易把重复率压到学校要求的线以下,结果AIGC检测标红一大片,直接被导师打回,连答辩资格都拿不到,比查重没过还让人头疼。今天就把我亲测好用的降AI技巧和实用工具整…

作者头像 李华
网站建设 2026/5/28 23:06:50

有机杂粮和普通杂粮区别

在市场上,有机杂粮和普通杂粮有着明显差异。下面就为大家详细分析两者的不同,并给出选择建议。生产过程差异有机杂粮在生产过程中严格遵循有机农业的标准,不使用化肥、农药、生长调节剂等化学物质。以华启顺为例,其有机杂粮种植基…

作者头像 李华
网站建设 2026/5/28 22:58:25

【场景实战】金融资讯整合:每天早上自动遍历 5 大财经网站,生成研报推送到企业微信

一、开篇:每天早上的一杯咖啡,和一封自动生成的财经研报 早上7:30,你刚端起咖啡,手机一震——企业微信群里已经躺着一份当天的财经资讯研报。东方财富的要闻、雪球的热帖、巨潮资讯的公告、同花顺的数据异动、财联社的快讯……五大数据源的精华被自动提炼成一份结构清晰、…

作者头像 李华