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

浙江省人才网官方网站建设厅招聘网站建设安全性原则

浙江省人才网官方网站建设厅招聘,网站建设安全性原则,wordpress 底部版权,东莞seo网站建设公司文章目录#x1f347;前言#x1f34e;复制带随机指针的链表#x1f351;写在最后#x1f347;前言 本章的链表OJ练习#xff0c;是最后的也是最难的。对于本题#xff0c;我们不仅要学会解题的思路#xff0c;还要能够通过这个思路正确的写出代码#xff0c;也就是思路… 文章目录前言复制带随机指针的链表写在最后前言 本章的链表OJ练习是最后的也是最难的。对于本题我们不仅要学会解题的思路还要能够通过这个思路正确的写出代码也就是思路转化为代码的过程这应该就是最难的地方了吧。 对于OJ练习(5): - 传送门 -环形链表的做法的证明一定要理解透彻因为面试很可能问到噢。 复制带随机指针的链表 题目链接- 传送门 -。 题目描述给你一个长度为 n 的链表每个节点包含一个额外增加的随机指针 random 该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。例如如果原链表中有 X 和 Y 两个节点其中 X.random -- Y 。那么在复制链表中对应的两个节点 x 和 y 同样有 x.random -- y 。返回复制链表的头节点。 也就是复制一个链表。 例如复制下面这个链表复制后返回复制后的链表的头节点 解题思路 我相信看到这个题第一感觉就是暴力把他给复制了。但暴力终会达到O(N^2)虽然可以过但如果面试的时候遇到这个问题面试官可能就会问如何将时间复杂度降到O(N)呢 所以这里使用一种O(N)的方法来解这道题。 首先我们在原链表上的每一个节点后面插入一个与自己有相同值的节点称为copy节点然后进行连接如下 然后进行的操作是最关键的再遍历一遍连接了copy节点后的链表将每一个copy节点的random指向它前一个节点就是被复制的那个节点因此这里操作的时候需要一个指针指向copy节点的前一个节点的random的next节点如果copy的前一个节点的random指向NULL那直接将copy节点的random指向NULL直到遍历结束可以得到下面这个链表 细心观察不难发现上面的所有copy节点组成的链表实际上就与原链表相同了。 因此最后的操作就是将每一个copy节点取下来尾插到新的链表上最后返回这个新链表的头即可。当然啦这里还需要将原链表复原。 根据上面的思路会发现如何将这些过程转换成代码是个难点。这里没得巧就是多练多写正如无他唯手熟尔。 ⏩下面是代码实现(注意一边写代码或者看代码一边要体会整个思路的过程) struct Node* copyRandomList(struct Node* head) {struct Node* cur head;while (cur){// 创建copy节点struct Node* copy (struct Node*)malloc(sizeof(struct Node));copy-val cur-val;// 存放当前节点的下一个节点的地址便于连接和继续遍历链表struct Node* next cur-next;// 连接cur-next copy;copy-next next;cur next;}cur head;while (cur){// 同样三个指针遍历struct Node* copy cur-next;struct Node* next copy-next;// 放置copy的random指针if (cur-random NULL) copy-random NULL;else copy-random cur-random-next;cur next;}// 新链表的头和连接新链表的指针struct Node* copyHead NULL, *copyTail NULL;cur head;while (cur){// 同样需要三个指针来遍历struct Node* copy cur-next;struct Node* next copy-next;// 如果copyHead为NULL先同时指向头节点if (copyHead NULL) {copyHead copyTail copy;}else {copyTail-next copy;copyTail copyTail-next;}// 复原原链表cur-next next;// 找下一个cur next;}return copyHead; }写在最后 对于单链表的题目练习最重要的是思路我们在数据结构阶段要养成画图的习惯因为它能帮助我们更好的理解。单链表的OJ练习在此就结束了大家要好好练习噢~ 感谢阅读本小白的博客错误的地方请严厉指出噢~
http://www.hkea.cn/news/14470525/

相关文章:

  • 电子商务网站建设与管理实验长沙餐饮设计公司
  • 建设网站的功能及目的是什么意思腾讯官方网站做书签
  • 长沙 网站设计 公司别墅装修设计图片大全 效果图
  • 网站建设付费项目网页制作平台有
  • 专业柳州网站建设哪家便宜网站建设本地还是外地
  • 做网站备案需要哪些材料图片库
  • 网站设计服务流程网站公告建设方案
  • 怎样做淘宝客导购网站国际军事新闻最新消息头条
  • 海尔网站建设情况公司网站建设一般多少钱
  • 外贸饰品网站开公司先建设网站
  • 做动画人设有哪些网站可以借鉴个人开发app需要多少钱
  • 企业网站内容管理互联网+体育消费
  • wordpress怎么添加二级域名莱芜新站优化
  • 益阳网站建设公司有哪些室内设计学校排名榜
  • 深圳市专业做网站中国临海门户网站工程建设
  • 国外建设工程网站2345网址导航高级版
  • 下一页p30深圳seo优化公司搜索引擎优化方案
  • 最流行的网站开发保密和档案网站建设方案
  • 网站 网页区别是什么龙川网站建设
  • 网站建设的优势是什么意思微信借口的网站怎么做
  • 建设网站进行商品营销的重要性开源cms管理系统
  • 网站导航条制作市住房和城乡建设局网站大连
  • 承德建站公司编程培训班学费找极客时间
  • 给网站做绝对路径优化wordpress搜索结果
  • 手机怎么做微电影网站wordpress 前端编辑器
  • 承德建设银行网站网站的建设需要数据库
  • 巨鹿网站建设网络公司开发专业网站
  • c 网站开发涪陵网站建设公司
  • 沈阳网站开发公司电话莱芜都市网二手房
  • 如何用 ftp上传网站wordpress手机全部显示