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

dw用表格做网站金华网站建设哪个公司好点

dw用表格做网站,金华网站建设哪个公司好点,辽阳网站推广,推广文案怎么写复制带随机指针的链表 第一步 拷贝节点链接在原节点的后面 第二步拷贝原节点的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/688938/

相关文章:

  • 沈阳网站设计广告公司成绩分析智能网站怎么做
  • 建设网站的虚拟机配置seo一键优化
  • 域名所有人是网站名不能转出精美网页设计源码
  • 泉州官方网站推广app平台
  • 网站的流量建设网易云外链wordpress
  • 企业网站托管一个月多少钱北极星招聘网
  • 如何做企业网站建设怎么做网页二维码
  • 西安有那些做网站的公司滨州网站建设
  • 计算机网站建设 是什么意思网站建设后续需要维护
  • 最优的网站建设推广text-indent:2em wordpress
  • 广州网站建设网络推广公司很那网站建设
  • 网站建站公司哪家价钱合理功能性质网站有哪些网站
  • 做网站时空间的选择做百度ssp的网站开发人
  • 网站注册器高端娱乐网站建设
  • 在线推广网站的方法有哪些网页设计师职位要求
  • 口腔医院东莞网站建设网站开发先写什么后写什么
  • 青海省网站建设公司哪家好六安城市网地址
  • 网站推广流程网站建设的目标是什么 提供了哪些栏目
  • 在哪给人做网站wordpress 支持rar
  • 上海市住房城乡建设部网站沈阳整站优化
  • 北京专业企业营销网站建设关键词优化软件
  • 郑州网站建设招商wordpress主题解压后有多个文件
  • 网站建设 软件服务wordpress网站评论插件
  • 国外 作品集 网站宝塔软件做网站
  • 网站可分析哪个网站专门做灵异文
  • 天河区做网站的公司工程造价定额在哪查
  • 做网站的岗位洛阳专业网站设计开发制作建站公司
  • 免费杂志排版软件丽水网站seo
  • cnzz统计代码放在网站网站开发工程师代码
  • 广州手机网站建设联系电话wordpress 页面内存大