当前位置: 首页 > news >正文

力扣:随即指针138. 复制带随机指针的链表

复制带随机指针的链表


OJ链接

分析:
该题的大致题意就是有一个带随机指针的链表,复制这个链表但是不能指向原链表的节点,所以每一个节点都要复制一遍
大神思路:
ps:我是学来的

在这里插入图片描述
上代码:

struct Node* copyRandomList(struct Node* head)
{//1.在原链表每个节点的后面复制一个节点struct Node* cur = head;while(cur){//插入struct Node*copy = (struct Node*)malloc(sizeof(struct Node));if(copy == NULL){perror("malloc\n");return NULL;}copy->val = cur->val;struct Node* next = cur->next;cur->next = copy;copy->next = next;//迭代cur = next;} //2.处理randomcur = head;while(cur){struct Node*copy = cur->next;if(cur->random == NULL){copy->random = NULL;}else{copy->random = cur->random->next;//这个思路的点睛之笔}cur = copy->next;//迭代}//3.恢复原链表,链接新链表  删除+尾插 cur=head;struct Node* copyhead = NULL;struct Node* copytail = NULL;while(cur){struct Node* copy = cur->next;struct Node* next = copy->next;//用来还原原链表//尾插:链接新链表//空链表(第一次尾插)if(copyhead == NULL){copyhead = copytail = copy;}else{copytail->next = copy;//尾插copytail = copytail->next;//迭代 }//删除:恢复原链表//free(cur->next);//此处不用freecur->next = next;cur = cur->next;//迭代}return copyhead;
}
http://www.lryc.cn/news/151922.html

相关文章:

  • 【从0学习Solidity】合约入门 Hello Web3
  • awtk-ftpd 发布
  • 抽象轻松的C语言
  • 【力扣每日一题01】两数之和
  • 机器学习——手写数字识别
  • 【日积月累】后端刷题日志
  • Matlab在编码中增加CRC和交织功能
  • Css 设置从上到下的渐变色: 0到70%为yellow,然后线性地变成透明。
  • git在windows上安装
  • 快速上手GIT命令,现学也能登堂入室
  • 二进制安全虚拟机Protostar靶场 安装,基础知识讲解,破解STACK ZERO
  • python实现的一些方法,可以直接拿来用的那种
  • 通过HTTP进行并发的数据抓取
  • 《论文阅读21》Equivariant Multi-View Networks
  • 【数据结构】| 并查集及其优化实现
  • 最新ChatGPT程序源码+AI系统+详细图文部署教程/支持GPT4.0/支持Midjourney绘画/Prompt知识库
  • 自动驾驶和辅助驾驶系统的概念性架构(一)
  • 【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之数码管静态显示(四)
  • 【洛谷】P3853 路标设置
  • 探索图像数据中的隐藏信息:语义实体识别和关系抽取的奇妙之旅
  • Gradle问题处理
  • 架构:C4 Model
  • 数据结构学习系列之顺序表的两种修改方式
  • React:props说明
  • Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘
  • C++的单例模式
  • Spring Boot 中 Nacos 配置中心使用实战
  • 学生管理系统VueAjax版本
  • 迭代器模式简介
  • 四方定理c++题解