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

网站制作技术方案网络推广网站电话

网站制作技术方案,网络推广网站电话,购物网站的名称和网址,b2b平台运营分析报告题目 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点…

题目

给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。

构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 

例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --> Y 。那么在复制链表中对应的两个节点 x 和 y ,同样有 x.random --> y 。

返回复制链表的头节点。

用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:

  • val:一个表示 Node.val 的整数。
  • random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果不指向任何节点,则为  null 。

你的代码  接受原链表的头节点 head 作为传入参数。

解题思路

  1. 先排除特殊情况:若链表为null则直接返回null;
  2. 使用Map存储原始链表的节点和对应索引;
  3. 使用List来存储复制后链表的节点;
  4. while循环完成节点复制、next链接和存储;
  5. 从Map和List中获取首节点进行第二次遍历;
  6. 第二次遍历建立random链接。

代码展示

class Solution {public Node copyRandomList(Node head) {//排除特殊情况if (head == null){return null;}Node ans = new Node(head.val);//需要获取random的索引,所以用map比遍历List要便捷Map<Node, Integer> headMap = new HashMap<>();//只需要根据索引获取对应节点,List本身是有序的,所以不需要用MapList<Node> ansList = new ArrayList<>();int index = 0;headMap.put(head, index);ansList.add(ans);//遍历生成所有节点并存储起来while (head.next != null){head = head.next;ans.next = new Node(head.val);index++;headMap.put(head, index);ansList.add(ans.next);ans = ans.next;}for (Node node : headMap.keySet()){if(headMap.get(node) == 0){head = node;break;}}ans = ansList.get(0);while (head != null && ans != null){Integer num = headMap.get(head.random);Node temp = null;if(num != null){temp = ansList.get(num);}ans.random = temp;head = head.next;ans = ans.next;}return ansList.get(0);}
}

http://www.15wanjia.com/news/53585.html

相关文章:

  • 计算机网络 网站上海seo优化公司bwyseo
  • 做淘宝图的素材搜索网站青岛seo公司
  • 制造业人才网seo搜索优化怎么做
  • 吴江城乡建设局网站体球网足球世界杯
  • 装修网站效果图军事新闻今日最新消息
  • 做网站是什么专业什么工作seo自动发布外链工具
  • 公司设计品牌公司百度关键词优化是什么意思
  • 网站开发建设步骤google下载手机版
  • 高端开发网站哪家专业宁德市
  • 网站建设中html做推广怎么赚钱
  • 微信公众平台官方网站登录seo培训网的优点是
  • 口碑好的高密网站建设湖南发展最新消息公告
  • 互联网产品推广是做什么的建站优化
  • 如何建立一个大型的网站网站推广主要是做什么
  • 绵阳网站推广排名国际重大新闻
  • 12306网站 给手机核验怎么做什么推广方式能快速引流
  • 高职院校高水平专业建设网站抓关键词的方法10条
  • 深圳住房和建设局网站 龙华长沙专业seo优化公司
  • 网站建设怎么付款免费招收手游代理
  • 常州网站制作市场快速排名软件案例
  • 一元云购网站建设模块seo培训学院官网
  • 网站制作和推广搜索引擎关键词优化方案
  • 网站结构优化北京已感染上千万人
  • 能发布自做的视频网站爱网站查询
  • 网站主机有什么用今日国际新闻最新消息事件
  • 怎么可以做自己的网站营销与销售的区别
  • 做金融网站拘留多久网站营销网站营销推广
  • 建设教育局网站硬件价格需要多少钱百度贴吧官网
  • 网站怎么做导航栏关键词优化顾问
  • 自己做局域网网站的流程免费搭建网站的软件