【链表】Leetcode 138. 复制带随机指针的链表
创始人
2025-05-30 06:41:21
0

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。

🌈个人主页:主页链接

🌈算法专栏:专栏链接

     我会一直往里填充内容哒!

🌈LeetCode专栏:专栏链接 

    目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出

🌈代码仓库:Gitee链接

🌈点击关注=收获更多优质内容🌈

目录

题目: 复制带随机指针的链表

题解:

代码实现:

完结撒花:


题目: 复制带随机指针的链表

题解:

这题虽然为中等难度,但找到方法后,考察的也仅是链表的增删查改四种操作。

这题可能很多人题目都没看懂,其实就是将题所给的链表完整的复制出来。

hhh,那能不能直接return head呢?显然不能。为什么?因为我试过啦

那么正经来看看如何去解这道题呢?

这里提供一种思路:首先将每个链表复制到原链表的后一个节点上去(也就是插入一个相同的节点) 

 

 之后每一个copy节点的random就为原节点的random->next,将其连接就好

 

 之后再将copy链表拆除出来:copy->next等于copy->next->next,也就是跳过了下一个原节点。

 

 之后在返回第一个copy节点就可以了。

第一个while循环为复制插入copy节点,当cur指针不为空的时候,三个指针轮流交换即可。很基础的插入操作,这里就不过多赘述。

插入后为这样。 

 之后每一个copy节点的random就为原节点的random->next,将其连接就好

当然这里涉及到一个边界问题:当random为空指针的时候,直接将其指向NULL即可

 

最后先记录下复制的头节点(也可以不记录,直接返回head->next也可) 

提交代码:

代码实现:

#include
#includestruct Node {int val;struct Node *next;struct Node *random;};struct Node* copyRandomList(struct Node* head) {struct Node * cur=head;if(!head)return head;while(cur){struct Node *copy=(struct Node*)malloc(sizeof(struct Node));struct Node *next=cur->next;copy->val=cur->val;copy->next=next;cur->next=copy;cur=next;}cur=head;while(cur){struct Node *copy=cur->next;struct Node *next=cur->next->next;if(cur->random==NULL)copy->random=NULL;else    copy->random=cur->random->next;cur=next;}cur=head;struct Node *head2=cur->next;while(cur){struct Node *copy=cur->next;struct Node *next=cur->next->next;if(!next)copy->next=NULL;else copy->next=next->next;cur->next=next;cur=next;}return head2;
}

完结撒花:

🌈本篇博客的内容【链表:Leetcode 138. 复制带随机指针的链表】已经结束。

🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。

🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。

🌈诸君,山顶见!

相关内容

热门资讯

技术布道 | 推动XR技术在产... 近年来,越来越多的企业正在利用扩展现实(XR)为用户提供沉...
最新或2023(历届)北京小升...  最新或2023(历届)北京小升初政策已经公布,今年各区将制定非京籍“五证”审核细则,进一步规范化非...
模糊的图片能恢复成高清图吗? 之前照了一组照片,当时忘了保存原图,现在翻出来看好模糊,还...
最新或2023(历届)北京小升...  最新或2023(历届)北京小升初政策春节前已经公布,关于最近很受关注的非京籍小升初,最新或2023...
最新或2023(历届)北京小升... 最新或2023(历届)北京小升初政策已经公布,政策中规定今年北京各区县都将对非京籍“五证”的审核制定...
最新或2023(历届)北京小升...  最新或2023(历届)北京小升初政策已经公布,今年各区将会出台非京籍“五证”细则,以保证非京籍学生...
最新或2023(历届)北京小升... 最新或2023(历届)北京小升初入学信息采集将于5月1日开始,这是是小升初进程中相当重要的一步。由于...
Golang在ACM模式下的刷... 受之前用C和C++刷题的影响,所有输入我都喜欢用scanf处理,恰恰golang也有scanf函数,...
天津和平教育局长谈最新或202...   近年来,和平区在区内各校全面推广义务教育现代化达标建设以及优秀教师交流、校长轮岗等制度,使义务教...
最新或2023(历届)北京小升...  随着最新或2023(历届)北京小升初进程的加快,最近名校游活动不管是线上答疑还是线下的沙龙以及走进...
最新或2023(历届)天津小升... 最新或2023(历届)天津小升初政策已经公布,各种考试几乎全部取消的消息使得很多天津小升初家长一瞬间...
最新或2023(历届)天津小升... 最新或2023(历届)天津小升初政策呼之欲出,各位小升初家长正翘首企盼。今年的天津小升初招生会与往年...
最新或2023(历届)北京小升...  1、听说师达风雨无阻?真的吗?雾霾天也要去?女孩子生理期也要去?  回答:估计这个问题应该是指体育...
Guitar Pro8.1升级... 很多人在听到Guitar Pro这个名词时,本能反应就是跟吉他有关的软件吧࿰...
广州华杯赛脱钩小升初 不接受个...  本报讯 (记者刘晓星)今年的“华杯赛”成绩在小升初录取后公布,基本上与小升初“脱钩”。然而,连日来...
最新或2023(历届)北京八十... 近日,坛子里的热心家长分享,八十中学正在接收最新或2023(历届)小升初简历,之前有家长分享需要三好...
最新或2023(历届)杭州小升...  3月  3月初,预备参与杭城民办初中自主招生的六年级学生,赶紧登陆各校官网预报名。不过,面向全省招...
最新或2023(历届)北京小升... 北京小升初推优几乎可以说是上名校“最靠谱”的途径,但是各区推优情况和规定不同,如何把握住整体的脉络呢...
最新或2023(历届)北京小升... 一.师达中学:  学费40000元/年,宿费3000元/年,餐费7700元/年  二.汇才中学:  ...
CompleteFuture异... CompleteFuture异步执行失败却返回成功 1、自定义线程池 @Configurat...