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

泰州专业网站制作公司容易被百度收录的网站

泰州专业网站制作公司,容易被百度收录的网站,wordpress 链接修改插件,网络推广经验分享剑指 Offer(第2版)面试题 35:复杂链表的复制 剑指 Offer(第2版)面试题 35:复杂链表的复制解法1:模拟 剑指 Offer(第2版)面试题 35:复杂链表的复制 题目来源&…

剑指 Offer(第2版)面试题 35:复杂链表的复制

  • 剑指 Offer(第2版)面试题 35:复杂链表的复制
    • 解法1:模拟

剑指 Offer(第2版)面试题 35:复杂链表的复制

题目来源:48. 复杂链表的复刻

解法1:模拟

算法:

  1. 复制原始链表的节点 N 并创建新节点 N’,把 N’ 链接到 N 的后面。
  2. 设置复制节点的 random 指针。
  3. 拆分链表:把奇数位置的节点链接起来就是原始链表,把偶数位置的节点链接起来就是复制链表,最后返回复制链表的头节点。

PS:少有的书上代码比其他解法要好的,推荐书上解法,拆分成三步走,清晰明了。

代码:

/*** Definition for singly-linked list with a random pointer.* struct ListNode {*     int val;*     ListNode *next, *random;*     ListNode(int x) : val(x), next(NULL), random(NULL) {}* };*/
class Solution
{
public:ListNode *copyRandomList(ListNode *head){CloneListNodes(head);SetRandomPointer(head);return SplitList(head);}// 第一步:复制原始链表的节点 N 并创建新节点 N',把 N' 链接到 N 的后面void CloneListNodes(ListNode *head){ListNode *p = head;while (p){// 复制节点ListNode *clone = new ListNode(0);clone->val = p->val;clone->next = p->next;clone->random = nullptr;p->next = clone;p = clone->next;}}// 第二步:设置复制节点的 random 指针void SetRandomPointer(ListNode *head){// 如果原始链表上的节点 N 的 random 指针指向 S,// 则它的复制节点 N' 的 random 指针指向 S'ListNode *p = head;while (p){ListNode *clone = p->next;if (p->random)clone->random = p->random->next;p = clone->next;}}// 第三步:拆分链表ListNode *SplitList(ListNode *head){ListNode *p = head;ListNode *cloneListHead = nullptr;ListNode *clone = nullptr;if (p){cloneListHead = p->next;clone = p->next;p->next = clone->next;p = p->next;}while (p){clone->next = p->next;clone = clone->next;p->next = clone->next;p = p->next;}return cloneListHead;}
};

复杂度分析:

时间复杂度:O(n),其中 n 是原始链表的节点个数。算法遍历了每个节点。

空间复杂度:O(n),其中 n 是原始链表的节点个数。算法创建了每个节点的副本。

http://www.yayakq.cn/news/588527/

相关文章:

  • 做配件出口上什么网站vs2015做简单网站
  • 网站建设 地址 上海石门二路ui界面设计图片展示
  • 酒店网站做的比较好的wordpress粉丝
  • 搭建网站是什么专业朋友圈推广怎么收费
  • 私人找人做网站重庆保姆网
  • 网站建设优化教程西安做网站公司云速
  • dede模板分为 网站建设好吗做网站推广代理
  • 郑州知名网站建设今天的国内新闻
  • 湖南省建设银行网站辽宁建设工程信息网开标流程
  • 网站建设费可摊几年哪个网站有工笔教程
  • 我想给企业做网站怎么做手机ui设计网站
  • 北京网站开发工程师招聘网前端实战项目11套
  • 林管局网站建设方案网站建设logo要什么格式
  • 吕梁市住房与城乡建设厅网站邢台网
  • 外贸网站免费建设鞍山信息港官网
  • 传统建筑网站做酒店网站所用到的算法
  • 一家专做土特产的网站上海网站制作哪家奿
  • 网站建设皿金手指谷哥壹柒网站建设 分类广告
  • 吉林省安全建设网站免费推广方法
  • 找权重高的网站方法名字logo设计在线生成免费
  • 下载代码的网站苏州手机网站seo
  • 网站上线如何做公司名字如何做招聘网站效果分析
  • 怎么增加网站访问量黑人与白人做爰网站
  • 企业商城网站建设价格荥阳市建设局 网站
  • 找一个免费域名的网站重庆装修公司排名前十口碑推荐
  • 深圳网站设计公司专业吗桐乡市建设局网站大通酩悦
  • 做er图的网站九江网站设计服务机构哪家好
  • 极速建站系统开发四川成都房产网
  • wordpress插件 速度杭州seo外包优化
  • 全景网站如何做怎么自己制作app