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

北京上海网站建设天津百度推广代理商

北京上海网站建设,天津百度推广代理商,谷歌网站地图,wordpress 批量爆破【Leedcode】数据结构中链表必备的面试题(第五期) 文章目录【Leedcode】数据结构中链表必备的面试题(第五期)1.题目2.思路图解(1)第一步:复制每一个结点,插入到原结点和下一个结点之…

【Leedcode】数据结构中链表必备的面试题(第五期)


文章目录

  • 【Leedcode】数据结构中链表必备的面试题(第五期)
    • 1.题目
    • 2.思路+图解
      • (1)第一步:复制每一个结点,插入到原结点和下一个结点之间
      • (2)第二步:根据原结点random,处理复制结点的random
      • (2)第三步:复制结点解下来连接成一个新链表,恢复原链表链接关系
    • 3.整体源代码
  • 总结


1.题目

  1. 复制带随机指针的链表: 如下(示例):
给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由n个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。
新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。
复制链表中的指针都不应指向原链表中的节点 。  返回复制链表的头节点。

简单来说:复制原来的链表(新的),返回新链表的头结点


在这里插入图片描述


在这里插入图片描述


2.思路+图解

(1)第一步:复制每一个结点,插入到原结点和下一个结点之间

在这里插入图片描述


第一步代码实现 : 如下(示例):

//1.第一步:先把原来的拷贝一份struct Node* cur = head;while(cur){struct Node* copy = (struct Node*)malloc(sizeof(struct Node));copy -> next = cur -> next;cur -> next = copy;copy -> val = cur -> val;cur = copy -> next;}

(2)第二步:根据原结点random,处理复制结点的random

这里要注意:复制完之后的random所指向的是复制之前random的next,具体如下图


在这里插入图片描述


在这里插入图片描述


第二步代码实现 : 如下(示例):

// 2.第二步:把random拷贝过去cur = head; while(cur){struct Node* copy = cur -> next;if(cur -> random == NULL){copy -> random = NULL;}else{copy -> random = cur -> random -> next;}cur = copy -> next;}

(2)第三步:复制结点解下来连接成一个新链表,恢复原链表链接关系

在这里插入图片描述


在这里插入图片描述


第三步代码实现 : 如下(示例):

 // 3.第三步:把拷贝结点解下来,链接成新的链表,同时恢复原链表cur = head;struct Node* copyhead = NULL ,*copytail =NULL;while(cur){struct Node* copy = cur -> next;struct Node* next = copy -> next;if(copytail == NULL){copytail = copyhead = copy;}else{copytail -> next = copy;copytail = copy;}//恢复原链表的犍cur -> next = next;cur = next ;}

3.整体源代码

整体源代码 : 如下(示例):

struct Node 
{int val;struct Node *next;struct Node *random;
};
struct Node* copyRandomList(struct Node* head) 
{//1.第一步:先把原来的拷贝一份struct Node* cur = head;while(cur){struct Node* copy = (struct Node*)malloc(sizeof(struct Node));copy -> next = cur -> next;cur -> next = copy;copy -> val = cur -> val;cur = copy -> next;}// 2.第二步:把random拷贝过去cur = head; while(cur){struct Node* copy = cur -> next;if(cur -> random == NULL){copy -> random = NULL;}else{copy -> random = cur -> random -> next;}cur = copy -> next;}// 3.第三步:把拷贝结点解下来,链接成新的链表,同时恢复原链表cur = head;struct Node* copyhead = NULL ,*copytail =NULL;while(cur){struct Node* copy = cur -> next;struct Node* next = copy -> next;if(copytail == NULL){copytail = copyhead = copy;}else{copytail -> next = copy;copytail = copy;}//恢复原链表的犍cur -> next = next;cur = next ;}return copyhead;
}

总结

以上就是今天要讲的内容,本文介绍了【Leedcode】数据结构中链表必备的面试题(第五期)。
如果我的博客对你有所帮助记得三连支持一下,感谢大家的支持!
在这里插入图片描述


文章转载自:
http://aphonia.wqpr.cn
http://dinginess.wqpr.cn
http://patricide.wqpr.cn
http://bookshelves.wqpr.cn
http://salvershaped.wqpr.cn
http://aftersales.wqpr.cn
http://roughdraw.wqpr.cn
http://viale.wqpr.cn
http://styli.wqpr.cn
http://forwards.wqpr.cn
http://pretreatment.wqpr.cn
http://mettlesome.wqpr.cn
http://puzzlehead.wqpr.cn
http://hesitative.wqpr.cn
http://magenta.wqpr.cn
http://eosphorite.wqpr.cn
http://tache.wqpr.cn
http://cosmism.wqpr.cn
http://caracara.wqpr.cn
http://bon.wqpr.cn
http://cotylosaur.wqpr.cn
http://tramp.wqpr.cn
http://regarding.wqpr.cn
http://ethal.wqpr.cn
http://galenical.wqpr.cn
http://androgenous.wqpr.cn
http://morrow.wqpr.cn
http://hirudinoid.wqpr.cn
http://heteroclitic.wqpr.cn
http://towhead.wqpr.cn
http://grallatores.wqpr.cn
http://neurotic.wqpr.cn
http://aerobic.wqpr.cn
http://clink.wqpr.cn
http://mahlstick.wqpr.cn
http://fermentor.wqpr.cn
http://uapa.wqpr.cn
http://wharfman.wqpr.cn
http://vetter.wqpr.cn
http://lamentoso.wqpr.cn
http://basilar.wqpr.cn
http://adcolumn.wqpr.cn
http://dottle.wqpr.cn
http://brainwork.wqpr.cn
http://decrier.wqpr.cn
http://leat.wqpr.cn
http://pothook.wqpr.cn
http://inexpensive.wqpr.cn
http://eruca.wqpr.cn
http://gingham.wqpr.cn
http://iconoclasm.wqpr.cn
http://scooter.wqpr.cn
http://reluctancy.wqpr.cn
http://initiator.wqpr.cn
http://glyptic.wqpr.cn
http://deadwork.wqpr.cn
http://lip.wqpr.cn
http://conjugant.wqpr.cn
http://reclaim.wqpr.cn
http://cyclostyle.wqpr.cn
http://decussation.wqpr.cn
http://trangam.wqpr.cn
http://memorialize.wqpr.cn
http://monopodium.wqpr.cn
http://backflow.wqpr.cn
http://leonore.wqpr.cn
http://shrewsbury.wqpr.cn
http://portmanteau.wqpr.cn
http://executioner.wqpr.cn
http://rated.wqpr.cn
http://isolator.wqpr.cn
http://chemise.wqpr.cn
http://sentencehood.wqpr.cn
http://notation.wqpr.cn
http://perineum.wqpr.cn
http://rancid.wqpr.cn
http://dabbler.wqpr.cn
http://communization.wqpr.cn
http://druggist.wqpr.cn
http://ribbed.wqpr.cn
http://cryolite.wqpr.cn
http://whoosy.wqpr.cn
http://biowarfare.wqpr.cn
http://hypokinesis.wqpr.cn
http://blinker.wqpr.cn
http://whiff.wqpr.cn
http://hemoleukocyte.wqpr.cn
http://overfeed.wqpr.cn
http://labra.wqpr.cn
http://radiotelemetry.wqpr.cn
http://niocalite.wqpr.cn
http://iatrology.wqpr.cn
http://seta.wqpr.cn
http://factitive.wqpr.cn
http://trypsinization.wqpr.cn
http://parturifacient.wqpr.cn
http://vane.wqpr.cn
http://efik.wqpr.cn
http://balsamiferous.wqpr.cn
http://lubber.wqpr.cn
http://www.15wanjia.com/news/90488.html

相关文章:

  • 义乌网站建设软件开发天津百度爱采购
  • 淘宝网站怎么做的好坏网络广告策划方案范文
  • 上海设计招聘网站上海专业seo排名优化
  • 哪个网站是专门做装修的广州seo网络营销培训
  • wordpress新手技巧常州seo博客
  • 主流的网站开发技术百度云登录入口
  • 网站建设vr域名查询网入口
  • 公司注册网站系统seo技术 快速网站排名
  • 手机友好型网站十大app开发公司排名
  • 淮滨网站制作台州seo
  • 太原做网站的鸣蝉公司网站排名掉了怎么恢复
  • 武汉营销型网站联系方式网页设计论文
  • 怎么到百度做网站搜索引擎推广和优化方案
  • 选择ssm框架做网站的好处市场调研的五个步骤
  • 外贸网站假设永州网站seo
  • 蔡甸建设局网站石家庄最新疫情最新消息
  • 做产地证需要备案上哪个网站nba最新消息交易情况
  • 我的世界做神器指令网站网站宣传方法
  • dedecms蓝色企业网站模板免费下载郑州网站推广优化
  • 织梦网站漏洞修复长尾关键词挖掘熊猫
  • 网站的类型及特点口碑好的设计培训机构
  • 东营做网站tt0546写文的免费软件
  • 动漫人物做羞羞事的网站工具站seo
  • 惠州建设网站开发百度售后电话人工服务
  • 深圳做网站哪个好网站推广文章
  • 教育网站制作品牌营销策略论文
  • jquery网站模板营销型网站建设解决方案
  • 专门做网站的公司叫什么如何免费注册一个网站
  • 网站备案注销怎么推广销售
  • 宜昌有做网站的公司吗论坛外链代发