LeetCode 138. 随机链表的复制

2024-05-09 09:04

本文主要是介绍LeetCode 138. 随机链表的复制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.原题链接: 

2.结点拆分:

代码实现: 

3.提交结果: 

4.读书分享: 


1.原题链接: 

138. 随机链表的复制

2.结点拆分:

①.拷贝各个结点,连接在原结点后面;

②.处理拷贝结点的random:

由图可知,每个拷贝结点都在原结点的后面,那拷贝结点的random结点是不是也在原结点random结点后面?

③.拆解出复制链表:

代码实现: 

typedef struct Node Node;
struct Node* copyRandomList(struct Node* head) {if(head==NULL)return NULL;//拷贝结点并连接在原结点后面Node* cur=head;while(cur!=NULL){       Node* copy=(Node*)malloc(sizeof(Node));copy->next=NULL;copy->random=NULL;copy->val=cur->val;copy->next=cur->next;cur->next=copy;cur=cur->next->next;}//处理random结点cur=head;while(cur!=NULL){Node* copy=cur->next;        if(cur->random==NULL)//当random结点为空时,特殊处理copy->random=NULL;elsecopy->random=cur->random->next;cur=cur->next->next;}//拆解复制链表cur=head;Node* copyHead=head->next;//保存复制链表的头结点while(cur!=NULL){Node* copy=cur->next;Node* next=copy->next;cur->next=next;if(next==NULL)//避免引发空指针问题copy->next=NULL;elsecopy->next=next->next; cur=next;}return copyHead;
}

3.提交结果: 

4.读书分享: 

道德经·第四十八章》:

为学日益,为道日损。损之又损,以至于无为。

无为而无不为。

取天下常以无事,及其有事,不足以取天下。

解释:

追求学问天天增益,修行大道日益减损。减损而又减损,最后达到无为的境地。

能够做到无为,就会有所作为。

治理天下必须无所事事,如果经常有所事事,就不能治理天下了。

这篇关于LeetCode 138. 随机链表的复制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/972972

相关文章

C#文件复制异常:"未能找到文件"的解决方案与预防措施

《C#文件复制异常:未能找到文件的解决方案与预防措施》在C#开发中,文件操作是基础中的基础,但有时最基础的File.Copy()方法也会抛出令人困惑的异常,当targetFilePath设置为D:2... 目录一个看似简单的文件操作问题问题重现与错误分析错误代码示例错误信息根本原因分析全面解决方案1. 确保

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

MySQL实现多源复制的示例代码

《MySQL实现多源复制的示例代码》MySQL的多源复制允许一个从服务器从多个主服务器复制数据,这在需要将多个数据源汇聚到一个数据库实例时非常有用,下面就来详细的介绍一下,感兴趣的可以了解一下... 目录一、多源复制原理二、多源复制配置步骤2.1 主服务器配置Master1配置Master2配置2.2 从服

MySQL配置多主复制的实现步骤

《MySQL配置多主复制的实现步骤》多主复制是一种允许多个MySQL服务器同时接受写操作的复制方式,本文就来介绍一下MySQL配置多主复制的实现步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 环境准备2. 配置每台服务器2.1 修改每台服务器的配置文件3. 安装和配置插件4. 启动组复制4.

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

Conda虚拟环境的复制和迁移的四种方法实现

《Conda虚拟环境的复制和迁移的四种方法实现》本文主要介绍了Conda虚拟环境的复制和迁移的四种方法实现,包括requirements.txt,environment.yml,conda-pack,... 目录在本机复制Conda虚拟环境相同操作系统之间复制环境方法一:requirements.txt方法

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与