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

全国住房和城乡建设厅网站怎么有自己的网站

全国住房和城乡建设厅网站,怎么有自己的网站,在哪个网站做视频赚钱,注册网站需要实名认证吗【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://www.yayakq.cn/news/202201/

相关文章:

  • 深圳网站设计哪家温州网站建设方案开发
  • 母版页做网站例子网站标题写什么作用是什么意思
  • 给别人做网站怎么收取费用php连接wordpress数据库
  • 建设厅网站关于建筑资质合并怎么查网站有没有做底部导航
  • 做营销型网站需要注意哪些点wordpress免费模版
  • 温州外贸网站建设微信小程序怎么做自己的店铺
  • 网站开发 界面互联网营销师证书怎么考多少钱
  • 带论坛的网站模板下载地址自己怎样免费建设网站
  • 阿里百川 网站开发网站找谁备案
  • 单网页网站wordpress仿微信主题
  • 企业网站国内现状设计网站需提供什么
  • 建立充电站需要多少钱做网站推广怎么说广告词
  • 万户网络的网站安全吗电子商务网站建设参考书
  • 杭州网站建设书生商友网站权重6了该则么做优化方案
  • 免费申请的网站wordpress如何集成小工具功能
  • 永安市建设局网站网站管理助手哪个好用
  • 受雇去建设网站类网站招聘网站开发费用
  • 做网站宁波抖音推广平台有哪些
  • cms下载官方网站织梦cms做好的网站怎样上传到服务器
  • 语言免费网站建设合肥市门窗工程在哪个网站接活做
  • 大连做网站建设吴江区建设工程招标网站
  • 淘宝客网站域名备案吗瑞昌市环保局网站建设
  • 珠海新盈科技网站建设phpok企业建站系统
  • 永州祁阳网站建设南阳最新通知今天
  • 12306的网站是哪个公司做的信息系统项目管理师
  • 徐州网站建设报价域名代备案平台
  • wordpress网站代码优化深圳网站建设三把火科技
  • 烟台软件优化网站网站推广公司 wordpress
  • 网站推广是什么岗位深圳建站公司设计深业集团
  • 公司网站开发计划书wordpress下载主题需要ftp