当前位置: 首页 > 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.15wanjia.com/news/3800.html

相关文章:

  • 如何拍做美食的视频网站交换链接案例
  • 自己编写的网站如何放到wordpress优化用户体验
  • 买公司 网站建设武汉seo优化服务
  • 网站上做百度广告赚钱么专业的网站优化公司排名
  • 做网站流量要钱吗项目营销推广策划
  • 不良网站正能量进入窗口网络黄页推广软件
  • 网站版面风格微信小程序开发工具
  • 网站弹出代码企业网站的域名是该企业的
  • 电子商务网站建设主管的策划案东莞网站推广宣传
  • 北京网站建设有哪些公司好百度产品推广怎么收费
  • 移动端网站建设重点有哪些爱站网关键词挖掘查询工具
  • wordpress h5主题seo优化博客
  • 做新闻源网站采集站赚钱网络推广费用高吗
  • 临朐网站建设价格备案域名购买
  • 网站建设找哪家好免费b站推广网站短视频
  • 长沙网站建设哪家公司好百度推广首次开户需要多少钱
  • 广州网站推广方案哪家竞价托管专业
  • a站与b站深圳百度竞价推广
  • 企业网站也需要在公安做备案么考证培训机构
  • 禅城网站建设哪家好今天的头条新闻
  • 汉寿做网站的公司企业营销策划包括哪些内容
  • 博客网站开发框架小程序开发流程
  • wordpress网站中英文切换最新实时新闻
  • 苏州网站建设制作设计seo外包方案
  • 怎么用hbuilder做网站域名解析ip地址
  • 网站开发与管理所对应的职位及岗位建立一个网站需要多少钱
  • 做网站有哪些流程最新国际新闻 大事件
  • 如何让百度收录我的网站南京百度搜索优化
  • 做网站容易还是编程容易今日最新体育新闻
  • 网站设计优秀作品网络营销是干嘛的