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

网站租用服务器费用百度网盘登录首页

网站租用服务器费用,百度网盘登录首页,西安做网站 送百度首页,网站建设 中企动力厨具剑指 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.wangmingla.cn/news/96157.html

相关文章:

  • 多伦网站建设青岛网络优化厂家
  • 网站月流量什么意思西安百度推广开户运营
  • 企业网站建设个人博客电脑优化软件
  • 电子工厂网站建设什么是网络营销策划
  • 小程序企业网站重庆seo什么意思
  • 17zwd一起做网店潮汕站手机版百度入口
  • wordpress首页缓慢seo算法
  • 专业营销软件网站建设自媒体服务平台
  • 建设快照网站外贸网站推广服务
  • 山东省品牌建设促进会网站搜索引擎推广的基本方法
  • 南京专业做网站苏州推广排名
  • 哪些域名不能够做淘宝客网站爱站网官网
  • 羊绒制品有限公司网站建设论文企业如何做网站
  • wordpress apache版本号贵州二级站seo整站优化排名
  • 网站备案和前置审批搜索引擎营销概念
  • 公司做一个网站内容如何设计方案怎样做推广营销
  • wordpress修改指向域名网站优化培训班
  • 家用宽带怎么做网站 访问怎么开网店
  • 在什么网站做推广成都网络推广优化
  • 公司网站制作多少钱品牌营销活动策划方案
  • 专门做产品定制的网站成人英语培训
  • 扶贫基金会网站建设是哪家公司深圳做网站
  • 怎么模仿网站做ppt本周的新闻大事10条
  • 网站密码怎么做免费企业建站
  • 国外设计网站behance打不开网址seo关键词
  • 来个网站急急急2021年百度站长工具seo综合查询
  • 做新闻网站需要注册第几类商标seo服务优化
  • b2c中日外贸有哪些网站做的好网络营销主要做些什么
  • 昆明比较好的网站开发公司百度官网下载安装
  • 东莞长安网站推广公司苏州seo培训