1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

复制带随机指针的链表

题目分析

本题考察的是如何实现复杂链表的深拷贝。每个节点除了普通的next指针外,还有一个随机指针random,随机指针可能指向链表中的任意节点或null。

解题思路与算法

要实现链表的深拷贝,需要确保复制链表中的random指针也能正确指向新链表中对应的节点,而不是原链表中的节点。

一种高效的解决方法为“三步走”算法:

P4049.随机链表的复制

    1000ms Tried: 1677 Accepted: 491 Difficulty: 5 所属公司 : Hot100
    算法与标签>链表

Leetcode 138.随即链表的复制-原题链接

题目内容

给你一个长度为 nnn的链表,每个节点包含一个额外增加的随机指针 randomrandomrandom,该指针可以指向链表中的任何节点或空节点。

构造这个链表的 深拷贝。 深拷贝应该正好由 nnn个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 nextnextnext 指针和 randomrandomrandom 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。

例如,如果原链表中有 XXX 和 YYY 两个节点,其中 X.random−−>YX.random --> YX.random−−>Y 。那么在复制链表中对应的两个节点 xxx 和 yyy ,同样有 x.random−−>yx.random --> yx.random−−>y 。

返回复制链表的头节点。

用一个由 nnn 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val,randomindex][val, random_{index}][val,randomindex​] 表示:

  • valvalval:一个表示 Node.valNode.valNode.val 的整数。
  • randomindexrandom_{index}randomindex​:随机指针指向的节点索引(范围从 000 到 n−1n-1n−1);如果不指向任何节点,则为 nullnullnull 。

你的代码只接受原链表的头节点 headheadhead 作为传入参数。

输入描述

输入包含多行。

第一行包含一个整数 nnn,表示链表的长度。

接下来 nnn 行,每行包含两个值,表示链表每个节点的情况:

  • 第一个值为节点的整数值 val。
  • 第二个值为随机指针指向节点的索引(从 000 开始计数),若随机指针为 null,则用 -1 表示。

节点按输入顺序连接。

输出描述

输出共 nnn 行,每行两个值,与输入格式相同,表示新链表中每个节点的 val 和 random 指针的索引。

样例1

输入

5
7 -1
13 0
11 4
10 2
1 0

输出

7 -1
13 0
11 4
10 2
1 0

样例2

输入

2
1 1
2 1

输出

1 1
2 1

样例3

输入

3
3 -1
3 0
3 -1

输出

3 -1
3 0
3 -1

提示

  • 0<=n<=10000 <= n <= 10000<=n<=1000
  • −104<=Node.val<=104-10^4 <= Node.val <= 10^4−104<=Node.val<=104
  • Node.randomNode.randomNode.random 为 nullnullnull或指向链表中的节点。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 3, 42ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?