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

专业做营销网站深圳做外贸网站

专业做营销网站,深圳做外贸网站,石家庄网页制作招聘信息,制作ppt的软件电脑每日一题#xff08;复制带随机指针的链表#xff09; 138. 复制带随机指针的链表 - 力扣#xff08;LeetCode#xff09; 思路#xff1a; 由于每个链表还包含了一个random节点指向了链表中的随机节点#xff0c;所以并不能直接照搬复制原链表。首先想到的暴力思路是复…每日一题复制带随机指针的链表 138. 复制带随机指针的链表 - 力扣LeetCode 思路 由于每个链表还包含了一个random节点指向了链表中的随机节点所以并不能直接照搬复制原链表。首先想到的暴力思路是复制一条新的链表。找到原链表的每个节点的random到该节点的相对举例。但是实际上操作起来更复杂。 这里提供另外一个思路 第一步创建新节点 在原链表的每个节点之后紧跟着复制一个节点形成新老节点相间的局面并且将原链表的每个节点的值赋值给其后创建的节点中并且将新开辟的节点的random成员的值设置为NULL如下图 第二步设置新节点random的值 创建一个cur指针指向原链表的第一个节点再创建一个newhead指针指向cur的nextcur指针从head处出发newhead从head-next处出发。开始遍历链表。这里有一个最重要的关系当cur-random不为空时当cur-random的值为NULL时则不做改动满足cur-random与cur的对应关系与newhead-random和cur-random-next的对应关系时一样的。 就可以根据这些对应关系修改新创建的节点的random的值。接着cur向后移动两步指向下一个原链表中的节点newhead也向后走两步指向下一个新开辟的节点。如下图所示红色的是random指针绿色的是next指针新节点之间的random的链接关系和原链表的random的链接关系并没有改变。 第三步断开链表 创建三个指针cur1和cur2和newheadcur1从head的next处开始遍历cur2从head处开始遍历newhead指针用于记录cur1的起始位置。将原链表的节点和新链表的节点各自分成一条链表。特别注意这里的遍历迭代的顺序不得交换 在两个指针向后更新的过程中肯定是cur1-next先为NULL当cur1-next为NULL时就退出循环但是此时的cur2的next指针仍然指向的是新开辟的最后一个节点。所以在返回newhead之前要将cur2-next置为NULL。 代码实现 if(headNULL){return NULL;}struct Node* cur head;struct Node* curNext head;struct Node* newhead head;//构造相间的节点while(cur!NULL){curNext cur-next;struct Node* newnode (struct Node*)malloc(sizeof(struct Node));if(newnode NULL)return NULL;newnode-val cur-val;newnode-random NULL;//新节点链接在原节点之后cur-next newnode;newnode-next curNext;cur curNext;}cur head;//复制各自的randomwhile(cur!NULL){newhead cur-next;if(cur-random!NULL){newhead-random cur-random-next;}cur cur-next-next;}//断开newhead head-next;struct Node* cur1 newhead;//cur1用于遍历newnodestruct Node* cur2 head;//cur2用于遍历原链表的节点while(cur1-next){cur2-next cur2-next-next;cur1-next cur1-next-next;cur2 cur2-next; cur1 cur1-next;}//将cur2-next置空cur2-next NULL;return newhead;完结 复制带随机指针的链表习题的分析就到这里啦若有不足欢迎评论区指正下期见
http://www.zqtcl.cn/news/673431/

相关文章:

  • 婚庆设备租赁网站源码如何进行网站的建设和维护
  • 青岛做网站公wordpress文章付费阅读
  • 小灯具网站建设方案360优化大师
  • 开发公司与物业公司前期合同网站优化的推广
  • 汉堡云虚拟主机aso安卓优化公司
  • 医院 网站建设 新闻营销外包
  • 优秀网站网址郑州无痛人流哪家医院好
  • 备案网站能打开吗大良营销网站建设流程
  • 哪些网站可以做淘宝店招石油网站编辑怎么做
  • 网站出现建设中集团网站建设特点
  • asp网站开发 pdf企业展厅设计公司盛世笔特
  • 怎么创建网站 免费的免费开源的网站系统
  • 中山精品网站建设资讯网页设计师就业趋势
  • 网站建设哪家好 万维科技wordpress广告公司模板
  • 如何选择建网站公司网站页面html静态化
  • 建设银行网站入口网页设计培训 周末双休
  • 做企业网站建设的公司为什么企业网站不是开源系统
  • 网站客户端怎么做的做汽车脚垫版的网站
  • 做数学题挣钱的网站广西建筑特种作业证件查询官网
  • 汉字叔叔花了多少钱做网站免费原创视频素材
  • 网站开发提现功能互联网推广工作好做吗
  • 做阿里渠道的销售要有哪些网站网站评论怎么做的
  • 建设中网站如何上传图片深圳营销型网站建设设计公司
  • 建设电商网站需要多少钱家具网页设计素材
  • 物流网站html5模板网站整站开发
  • 网站随机代码网站开发技术试验教程
  • 做翻译 网站吗仿京东电商的网站开发报价
  • 霞山网站建设公司网站开发怎样手机号验证
  • 大型门户网站建设苏州优化网站建设
  • 网站步骤怎么搭建个人网站