【数据结构】【链表代码】随机链表的复制

server/2024/10/10 18:53:56/

/*** Definition for a Node.* struct Node {*     int val;*     struct Node *next;*     struct Node *random;* };*/typedef struct Node Node;
struct Node* copyRandomList(struct Node* head) {if(head==NULL)return NULL;//1.拷贝结点,连接到原结点的后面Node*cur=head;while(cur){Node*copy=(Node*)malloc(sizeof(Node));copy->next=NULL;copy->random=NULL;copy->val=cur->val;// //相当于插入// copy->next=cur->next;// cur->next=copy;Node*next=cur->next;cur->next=copy;copy->next=next;cur=next;}//2.处理拷贝结点的randomcur=head;while(cur){Node*copy=cur->next;if(cur->random)copy->random=cur->random->next;elsecopy->random=NULL;cur=cur->next->next;}//3.拆cur=head;Node*copyHead=head->next;//因为函数最后返回的是头指针while(cur){Node*copy=cur->next;Node*next=cur->next->next;cur->next=next;if(next)copy->next=next->next;elsecopy->next=NULL;cur=next;}return copyHead;
}


http://www.ppmy.cn/server/129740.html

相关文章

python34_可变字符串

可变字符串 说明 在 Python 中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象。 但是,经常我们确实需要原地修改字符串,可以使用 io.StringIO对象或 array 模块impo…

深入解析MySQL事务管理:ACID特性与基本操作

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

JAVA思维提升

利用java做一个双色球彩票系统 要求 package ZY; import java.util.Random; import java.util.Scanner; public class Test9双色球 { //目标:模拟双色球//规则投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1-33中选择;蓝色球号码从1-16中选择。publi…

【React】事件机制

事件机制 react 基于浏览器的事件机制自身实现了一套事件机制,称为合成事件。比如:onclick -> onClick 获取原生事件:e.nativeEvent onClick 并不会将事件代理函数绑定到真实的 DOM节点上,而是将所有的事件绑定到结构的最外层…

【瑞昱RTL8763E】音频

1 音乐播放控制 1.1 播放列表更新 文件系统在sd卡中保存header.bin及name.bin两份文件用于歌曲名称的存储。为方便应用层进行歌曲显示及列表管理,可将这两个bin文件信息读取并保存到nor flash中。需要播放指定名称的歌曲时,将对于歌曲名称传递给文件系…

Go版数据结构 -【8.4 快速排序】

8.4 快速排序 快速排序是一种分而治之的排序算法。它通过随机选择一个基准元素,将数组分为两部分。 一部分比基准元素小,另一部分比基准元素大,之后对两部分排序。 快速排序以其平均情况下的 O(n log n) 时间复杂度和良好的性能而广泛应用…

小程序 uniapp+Android+hbuilderx体育场地预约管理系统的设计与实现

目录 项目介绍支持以下技术栈:具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是:数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 用户 注册…

linux 端口 进程

文章目录 1. 检查端口是否被监听1. 使用 netstat 命令2. 使用 ss 命令3. 使用 lsof 命令4. 使用 curl 命令5. 使用 telnet 命令6. 查看Python程序输出示例输出总结 2.查看端口被哪个进程占用1. 使用 lsof 命令2. 使用 netstat 命令3. 使用 ss 命令示例输出总结 3.查看进程在哪个…