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

网站和新媒体建设审批制度杭州企业建站模板

网站和新媒体建设审批制度,杭州企业建站模板,seo初级入门教程,移动端网站怎么做文章目录#x1f347;前言#x1f34e;复制带随机指针的链表#x1f351;写在最后#x1f347;前言 本章的链表OJ练习#xff0c;是最后的也是最难的。对于本题#xff0c;我们不仅要学会解题的思路#xff0c;还要能够通过这个思路正确的写出代码#xff0c;也就是思路… 文章目录前言复制带随机指针的链表写在最后前言 本章的链表OJ练习是最后的也是最难的。对于本题我们不仅要学会解题的思路还要能够通过这个思路正确的写出代码也就是思路转化为代码的过程这应该就是最难的地方了吧。 对于OJ练习(5): - 传送门 -环形链表的做法的证明一定要理解透彻因为面试很可能问到噢。 复制带随机指针的链表 题目链接- 传送门 -。 题目描述给你一个长度为 n 的链表每个节点包含一个额外增加的随机指针 random 该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。例如如果原链表中有 X 和 Y 两个节点其中 X.random -- Y 。那么在复制链表中对应的两个节点 x 和 y 同样有 x.random -- y 。返回复制链表的头节点。 也就是复制一个链表。 例如复制下面这个链表复制后返回复制后的链表的头节点 解题思路 我相信看到这个题第一感觉就是暴力把他给复制了。但暴力终会达到O(N^2)虽然可以过但如果面试的时候遇到这个问题面试官可能就会问如何将时间复杂度降到O(N)呢 所以这里使用一种O(N)的方法来解这道题。 首先我们在原链表上的每一个节点后面插入一个与自己有相同值的节点称为copy节点然后进行连接如下 然后进行的操作是最关键的再遍历一遍连接了copy节点后的链表将每一个copy节点的random指向它前一个节点就是被复制的那个节点因此这里操作的时候需要一个指针指向copy节点的前一个节点的random的next节点如果copy的前一个节点的random指向NULL那直接将copy节点的random指向NULL直到遍历结束可以得到下面这个链表 细心观察不难发现上面的所有copy节点组成的链表实际上就与原链表相同了。 因此最后的操作就是将每一个copy节点取下来尾插到新的链表上最后返回这个新链表的头即可。当然啦这里还需要将原链表复原。 根据上面的思路会发现如何将这些过程转换成代码是个难点。这里没得巧就是多练多写正如无他唯手熟尔。 ⏩下面是代码实现(注意一边写代码或者看代码一边要体会整个思路的过程) struct Node* copyRandomList(struct Node* head) {struct Node* cur head;while (cur){// 创建copy节点struct Node* copy (struct Node*)malloc(sizeof(struct Node));copy-val cur-val;// 存放当前节点的下一个节点的地址便于连接和继续遍历链表struct Node* next cur-next;// 连接cur-next copy;copy-next next;cur next;}cur head;while (cur){// 同样三个指针遍历struct Node* copy cur-next;struct Node* next copy-next;// 放置copy的random指针if (cur-random NULL) copy-random NULL;else copy-random cur-random-next;cur next;}// 新链表的头和连接新链表的指针struct Node* copyHead NULL, *copyTail NULL;cur head;while (cur){// 同样需要三个指针来遍历struct Node* copy cur-next;struct Node* next copy-next;// 如果copyHead为NULL先同时指向头节点if (copyHead NULL) {copyHead copyTail copy;}else {copyTail-next copy;copyTail copyTail-next;}// 复原原链表cur-next next;// 找下一个cur next;}return copyHead; }写在最后 对于单链表的题目练习最重要的是思路我们在数据结构阶段要养成画图的习惯因为它能帮助我们更好的理解。单链表的OJ练习在此就结束了大家要好好练习噢~ 感谢阅读本小白的博客错误的地方请严厉指出噢~
http://www.dnsts.com.cn/news/214991.html

相关文章:

  • 域名 备案 网站网站空间购买官方
  • 制作网页需要的技术上海百度搜索优化
  • 泉州专门制作网站北京专业建网站的公司
  • 加强网站和新媒体建设管理的意义代刷网站app制作教程
  • 大型网站 网站建设做编程网站有哪些方面
  • 阿里云域名 设置网站300元建站
  • 高端网站建设万维科技个人电脑做服务器映射网站
  • 长春电商网站建设网站开发人员工具
  • 什么是网站建设策划书设计公司企业标志
  • 滕州网站制作哪家好手机怎样建设网站
  • 防下载 的视频网站 怎么做百度热门关键词排名
  • 黄江网站仿做国内新闻最新官方消息
  • 网站快速收录教程网站北京备案快吗
  • 包头网站开发wordpress博客优秀
  • 大型网站建设企业名录模板logo设计公司上海
  • seo批量建站方法抖音带运营是怎么回事
  • 北京西站wordpress logo.svg
  • 张家港哪家做企业网站上门做睫毛哪个网站
  • 古镇灯饰网站建设服务互联网公司排名 中国
  • 四川建设报名系统官网成都网站整站优化
  • 二级域名分发站免费阳江网络问政平台下载
  • 百度山西网站建设和百度推广被跨境电商骗了怎么投诉
  • 呼家楼做网站的公司深圳设计官网
  • 西双版纳建设厅网站做网站前期创建文件夹
  • 河北唐山网站建设网站建设程序制作
  • 什么网站做的比较好线上培训网站开发
  • 忆唐网不做网站做品牌vps如果制作论坛网站
  • 设计接活的网站自己做影视类网站
  • dw做网站的导航栏阿里云服务器做网站
  • 网站开发开发需求文档模板重庆市建设工程信息网安全员c证电子版下载