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

网站静态模板下载网站维护有多长时间

网站静态模板下载,网站维护有多长时间,钉钉付费版多少钱,腾讯云wordpress升级慢复制带随机指针的链表 第一步 拷贝节点链接在原节点的后面 第二步拷贝原节点的random , 拷贝节点的 random 在原节点 random 的 next 第三步 将拷贝的节点尾插到一个新链表 ,并且将原链表恢复 从前往后遍历链表 ,将原链表的每个节点进行复制,并l链接到原…

复制带随机指针的链表

第一步 拷贝节点链接在原节点的后面
第二步拷贝原节点的random , 拷贝节点的 random 在原节点 random 的 next
第三步 将拷贝的节点尾插到一个新链表 ,并且将原链表恢复

从前往后遍历链表 ,将原链表的每个节点进行复制,并l链接到原节点的后面
malloc 一个节点copy

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cur 往后走 ,不能写成cur =cur->next ,因为已经改变了链接关系,找不到cur的下一个节点的地址了

第一步的代码

struct Node* copyRandomList(struct Node* head){struct Node * cur = head ;//cur 走到NULL 结束 while(cur){struct Node * copy = ( struct Node *)malloc ( sizeof( stuct Node)); //拷贝copy->val = cur->val;struct Node *  next = cur->next ;// 改变链接关系  cur copy next  cur->next =copy ;copy->next = next ;//cur 往后走  ,不能写成cur =cur->next ,因为已经改变了链接关系,找不到cur的下一个节点的地址了 cur = next ;}
}

对原链表 random 指针的复刻 , 即原节点 的 random 拷贝到 拷贝节点 的 random 里面

在这里插入图片描述

原节点 13的random指针指向原节点 7 ,拷贝的新节点 13的random指针也需要指向拷贝的节点7
如果原节点的random指针指向NULL ,新拷贝的节点的random指针也指向NULL

第二步的代码

//处理拷贝节点的random while(cur){struct Node * copy = cur->next ;if(cur->random  == NULL){copy->random = NULL ;//如果原节点的random指针指向NULL ,新拷贝的节点的random指针也指向NULL}else {copy->random = cur->random->next ;// 对原链表 random 指针的复刻}cur = cur->next->next ;}

在这里插入图片描述

上图中,我们可以观察到原节点 13的random指针指向原节点 7,拷贝的新节点13的random指针指向的是原节点7的next

推广一下也就是说
原节点 i 的random指针,指向的是原节点 j
那么新拷贝的节点 的random指针,指向的是原节点 j 的 next

但是这样下来 已经破坏了原链表 ,所以下一步是将拷贝的节点尾插到一个新链表 ,并且将原链表恢复

尾插
在这里插入图片描述

恢复原链表
在这里插入图片描述
在这里插入图片描述
第三步代码

    //将拷贝的新节点尾插到一个新链表, 并恢复原链表cur =head ;struct Node * copyhead  = NULL , * 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 ;}//恢复原链表cur->next = next ;cur = next ;}

完整代码

struct Node* copyRandomList(struct Node* head){struct Node * cur = head ;//cur 走到NULL 结束 while(cur){struct Node * copy = ( struct Node *)malloc ( sizeof( struct Node)); //拷贝copy->val = cur->val;struct Node *  next = cur->next ;// 改变链接关系  cur copy next  cur->next =copy ;copy->next = next ;//cur 往后走  ,不能写成cur =cur->next ,因为已经改变了链接关系,找不到cur的下一个节点的地址了 cur = next ;}cur = head ;//处理拷贝节点的random while(cur){struct Node * copy = cur->next ;if(cur->random  == NULL){copy->random = NULL ;}else {copy->random = cur->random->next ;//}cur = cur->next->next ;}//将拷贝的新节点尾插到一个新链表, 并恢复原链表cur =head ;struct Node * copyhead  = NULL , * 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 ;}//恢复原链表cur->next = next ;cur = next ;}return  copyhead ;}

如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!

http://www.yayakq.cn/news/431946/

相关文章:

  • 网页制作设计实验总结西安网站seo
  • 网站建设业务怎么开展西安网站建设外包服务
  • 站长必备网站公司企业做网站违法吗
  • 做艺术网站素材站群管理软件
  • 兰州网站开发企业网络服务费计入什么科目
  • wordpress二级域名网站优化常见的优化技术
  • 如何填写网站开发验收单慈溪网站设计
  • 锦州网站优化深圳北斗部标平台网站建设
  • 东莞营销型网站设计衡水做网站企业
  • 外发加工是否有专门的网站整站建设 想做一个外卖网站
  • 网站建设后的心得建设网站就选用什么样的公司
  • 做建材去什么网站企业网站诊断与优化方案
  • 泰国做彩票网站网站域名百度云网站环境建设
  • 做网站需要哪些技术支持网页设计网站思路
  • 做淘客必须有自己内部网站吗网站怎么做脚注
  • 本地网站可以做吗?什么是项目管理
  • 眉山市住房和城乡建设局网站拍摄企业宣传片哪家好
  • 给个能看的网站广告机器设备的价格表
  • 购物网站开发软件游戏推广应该怎么推
  • 做网站是用什么语言自己怎么搭建网站
  • 企业网站开发需要多钱建设银行广安官方网站
  • python网站开发集成环境四平网站建设
  • 郑州网站制作计划物联网对企业网站建设的要求
  • wordpress网站出现域名加两个双引号的图片死链接婚礼视频制作软件
  • 云南网站建设天度关于公司网络优化方案
  • php开发网站流程百度刷首页怎么刷
  • 建筑网站建设公司wordpress插件破解下载
  • 企业网站定制开发备案期间网站关闭
  • 做网站空间重要还是程序重要福州网站建设多少钱
  • 专业建站公司设计方案山西教育平台网站建设