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

必应网站建设网站需要证件

必应网站建设,网站需要证件,建站网页模板,调查问卷wordpress复制带随机指针的链表1.题目2.解题思路3.完整代码1.题目 题目链接: https://leetcode.cn/problems/copy-list-with-random-pointer/ 给你一个长度为 n 的链表#xff0c;每个节点包含一个额外增加的随机指针 random #xff0c;该指针可以指向链表中的任何节点或空节点。 … 复制带随机指针的链表1.题目2.解题思路3.完整代码1.题目 题目链接: https://leetcode.cn/problems/copy-list-with-random-pointer/ 给你一个长度为 n 的链表每个节点包含一个额外增加的随机指针 random 该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。 例如如果原链表中有 X 和 Y 两个节点其中 X.random -- Y 。那么在复制链表中对应的两个节点 x 和 y 同样有 x.random -- y 。 返回复制链表的头节点。 用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示 val一个表示 Node.val 的整数。 random_index随机指针指向的节点索引范围从 0 到 n-1如果不指向任何节点则为 null 。 你的代码 只 接受原链表的头节点 head 作为传入参数。 2.解题思路 我们分3个步骤来解决这个题目 1.复制结点插入到原结点和下一个结点之间 2.根据原结点的random处理复制结点的random 3.把拷贝的结点解下来存放到新的链表中恢复原链表的链接关系。 步骤一画图理解 开辟一个copy的结点把cur-val的值赋给copy-val,接着把copy-next指向cur-next,又把cur-nextcopy,最后让curcopy-next;此做动作一直循环直到cur等于NULL时结束。 步骤二 让copy指向cur的下一个结点,如果cur-randomNULL则copy-randomNULL否则copy-randomcur-random-next 最后curcopy-next此动作一直循环直到curNULL时结束。 第一个原结点的random指向的是NULL所以拷贝结点的random也是指向的NULL 第二个原结点的random指向的是7所以拷贝结点的random也是指向的7这里的7是拷贝结点的7 这里copy-randomcur-random-next不太好理解就是拷贝结点的random是指向原结点的random的next,这样才能指向7这个拷贝的结点。 步骤三 首先定义两个指针copyHead和copyTail指针初始化为NULL,用来存放拷贝的结点组成一个新链表再定义一个cur指向headcopy指向cur的下一个结点next指向copy的下一个结点 解结点把copy结点放到新链表中如果copyTail/copyHead为空则把copy的结点放到里面去否则把copy结点放到copyTail中去然后让copyTail指向copy最后让cur-next指向next,cur指向next为下一次循环做准备。 把拷贝的结点解下来的同时需要把原链表的链接关系重新链接好。 这样就算是把原链表深拷贝了。 3.完整代码 struct Node* copyRandomList(struct Node* head) {//复制结点插入到原结点和下一个结点之间struct Node* cur head;while(cur){struct Node* copy (struct Node*)malloc(sizeof(struct Node));copy-val cur-val;copy-next cur-next;cur-next copy;cur copy-next;}//根据原结点的random处理复制结点的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;}//把拷贝的结点解下来存放到新的链表中恢复原链表的链接关系struct Node* copyHead NULL, *copyTail NULL;cur head;while(cur){struct Node* copy cur-next;struct Node* next copy-next;if(copyTail NULL){copyHead copyTail copy;}else{copyTail-next copy;copyTail copy;}//为下一次循环做准备cur-next next;cur next;}return copyHead; }不管你认为这篇文章写的好不好反正没人点赞
http://www.hkea.cn/news/14554559/

相关文章:

  • 中国建设银行官方网站纪念币北京本地服务信息网
  • 网站扫二维码怎么做小程序开发定制开发
  • 城乡建设网站首页默认缩略图 wordpress
  • 公司网站建设论文网站建设包括哪些内容
  • 北京定制网站国外做伞的品牌网站
  • 建设网站招标centos7.2做网站
  • 网站开发的前台开发工具百度权重排名高的网站
  • 如何做网站推广的方案设计互联网站备案管理工作方案 工信部
  • 阿旗建设局举报网站长沙河东做网站
  • 巴南市政建设网站网站如何与域名绑定
  • 手机制作小程序软件的app天津企业seo
  • 专门做预言的网站win系统更新后 wordpress
  • 一级做a爱网站免费php网站开发都需要什么软件
  • 大连网络备案做网站有口碑的宁波网站建设
  • 做网站包括什么软件个人简历网页制作代码
  • 途途外贸企业网站管理系统上海有什么公司
  • 制作一个自适应网站培训教育机构
  • 网站建设主要业务流程设定怎么做像天猫类似的网站
  • 网站里的横幅怎么做汕头建站模板源码
  • 学做网站后台开发长春做网站建设的公司
  • 宁波外贸公司为什么这么多怎么优化网站关键词的方法
  • 怎么用we做网站礼品公司网站制作
  • 网站和网页微网站如何做微信支付宝支付
  • 免费网站推广工具青岛团购网站建设
  • 网站建设合同 含维护费申请域名要钱吗
  • p2p网站开发公司西宁网站设计高端
  • 网站后台管理系统数据库织梦cms仿网站教程
  • 福州网站设计网站系统制作会议管理系统
  • 绚丽的网站欣赏手机购物app排行榜前十名
  • 八里河风景区网站建设内容摘要北京移动端网站开发