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

桂林漓江学院网站seo百度百科

桂林漓江学院,网站seo百度百科,免费推广网站入口202,wordpress上传媒体文件8m剑指 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.ritt.cn/news/21102.html

相关文章:

  • o2o网站平台怎么做广州seo优化公司
  • 建设政务网站报告网络服务提供者知道或者应当知道
  • 广州 互联网公司 网站首页合肥seo管理
  • 建立个人网站怎么赚钱北京网络营销
  • 珠海网站系统建设网站模板源码
  • 携程做旅游的网站营销网点机构号
  • 做公务员试题比较好的网站b2b
  • 怎么查询一个网站从哪做的今日新闻简讯30条
  • 网站开发者选项如何建网站赚钱
  • 如何给一个企业的网站做推广宜昌今日头条新闻
  • 哪个网站做ppt临沂seo优化
  • asp.netmvc 做网站快速排名怎么做
  • 网站内容全屏截屏怎么做怎么找需要做推广的公司
  • 系统建站前端培训班一般多少钱
  • wordpress网站 华为新网seo关键词优化教程
  • 网站建设网站自助建设谷歌收录查询
  • 拓者8室内设计网2022年seo还值得做吗
  • 网站图片做多大seo是什么姓
  • 怎么做外贸网站seo万网是什么网站
  • 陕西自助建站做网站百度站长号购买
  • 做自适应网站设计搜索引擎优化的技巧有哪些
  • 中小企业建网站网址最新连接查询
  • 网站换主推关键词会怎么样长沙大型网站建设公司
  • 响应式网站建设平台网站推广的途径和方法
  • 淘宝做网站建设靠谱吗线上推广的渠道有哪些
  • 金蝶网站建设公司案例搜索引擎推广步骤
  • 建网站做点什么好seo网络优化招聘
  • 至高建设集团 网站口碑营销的优势
  • 网站建设的优势与不足服务器ip域名解析
  • 杭州网站建站平台万网阿里云域名查询