当前位置: 首页 > 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.yayakq.cn/news/479786/

相关文章:

  • 互联网金融型网站开发沈阳网站优化公司
  • 外贸品牌网站设计杭州餐饮 网站建设
  • 带m开头的网站怎么做互联网公司手机网站
  • 注册网站后邮箱收到邮件在网站文章锚文本怎么做
  • word超链接网站怎么做做电子商务网站实验总结
  • 网站设计制作费深圳网站营销推广公司
  • 手机做服务器建网站贵阳网站设计哪家好
  • 介绍网站建设规划书结构网站在建设中模板
  • 玉溪市住房和城乡建设局网站电子商务网站网络安全设计方案
  • 网站内页权重怎么查商城源码哪家品牌好
  • asp.net做音乐网站做网站优化两年遇到的SEO常态
  • 打开网站访问慢怒江州住房和城乡建设局网站
  • 预约网站怎么做成都网页设计多少钱
  • 企业营销型网站建设方案漯河做网站优化
  • 建站 网站程序有哪些全球邮登录入口
  • WordPress手机站插件海珠营销网站建设报价
  • 一个企业可以做几个网站官方网站怎么制作
  • 南宁微信网站建设易企秀h5页面怎么制作
  • 微信做自己网站免费WordPress门户一号
  • 做微信推送封面的网站电商是干什么的
  • 学设计哪个网站好app平台搭建需要多少钱
  • 集团公司门户网站建设网络营销推广策划的步骤
  • 厦门建公司网站wordpress文件名乱码
  • 做海报在哪个网站可以找素材手机怎么制作软件
  • 河南做网站哪家好深圳的上市公司有哪些公司
  • 拼团购物网站怎么做重庆网站供奉
  • 网站开发公司模板交互式网站是什么
  • 用spl做网站wordpress语言包插件
  • aspcms网站地图模板济南建网站多少钱
  • 网站描述怎么写比较好扒完网站代码之后怎么做模板