首页 > 其他分享 >(链表)18-随机链表的复制

(链表)18-随机链表的复制

时间:2023-11-19 20:35:34浏览次数:33  
标签:Node map cur 18 random next 链表 随机 null

 1 /*
 2 class Node {
 3     int val;
 4     Node next;
 5     Node random;
 6 
 7     public Node(int val) {
 8         this.val = val;
 9         this.next = null;
10         this.random = null;
11     }
12 }
13 */
14 
15 class Solution {
16     public Node copyRandomList(Node head) {
17         // 判空入参
18         if(head == null){
19             return null;
20         }
21         // 申请临时指针
22         Node cur = head;
23         // 申请HashMap用于存储复制节点
24         HashMap<Node,Node> map = new HashMap<>();
25         // 拷贝复制节点到HashMap
26         while(cur != null){
27             map.put(cur,new Node(cur.val));
28             cur = cur.next;
29         }
30         // 针对新节点的next指针和random指针进行赋值
31         cur=head;
32         while(cur!=null){
33             map.get(cur).next=map.get(cur.next);
34             map.get(cur).random=map.get(cur.random);
35             cur=cur.next;
36         }
37         // 返回结果
38         return map.get(head);
39     }
40 }

 

标签:Node,map,cur,18,random,next,链表,随机,null
From: https://www.cnblogs.com/StringBuilder/p/17842572.html

相关文章

  • 11.18 && 11.19
    发现好多学长都退役了......
  • (链表)17-两两交换链表中的节点
    1/**2*Definitionforsingly-linkedlist.3*publicclassListNode{4*intval;5*ListNodenext;6*ListNode(){}7*ListNode(intval){this.val=val;}8*ListNode(intval,ListNodenext){this.val=val;......
  • (链表)08-链表中倒数最后K个结点
    1importjava.util.*;23/*4*publicclassListNode{5*intval;6*ListNodenext=null;7*publicListNode(intval){8*this.val=val;9*}10*}11*/1213publicclassSolution{14/**15*@param......
  • (链表)09-删除链表的倒数第N个节点
    1importjava.util.*;23/*4*publicclassListNode{5*intval;6*ListNodenext=null;7*}8*/9publicclassSolution{10/**11*@paramheadListNode类12*@paramnint整型13*@returnListNode类14......
  • 求两个链表差集
    一、题目什么是差集对于集合A={a,b,c,d}和集合B={b,c,w},则A与B的差集为二、我的解答(所求的是L1-L2)list*p1=L1->next;//指向L1链表的指针p1List*p2=L2->next;//指向L2链表的指针p2思想:若p1和p2指向空间的数据域的值相等,则两指针向后移动,如果不等且p1<p2,那么L......
  • 【2023潇湘夜雨】WIN11_Pro_23H2.22635.2771软件选装纯净版11.18
    【系统简介】=============================================================1.本次更新母盘来自WIN11_Pro_23H2.22635.2771。2.增加部分优化方案,手工精简部分较多。3.OS版本号为22635.2771。精简系统只是为部分用户安装,个别要求高的去MSDN下。4.集成《DrvCeo-2.15.0.5》网卡版、......
  • 3-1899G
    题意:多次查询,每次给你数组的一个区间,和树上的一个点\(x\),问数组这个区间有没有\(x\)的子节点。题解:树上每个点子节点的dfs序一定大于它,并且,可以处理出每个节点,子节点dfs序的区间。问题转化成,所查询区间有没有值在区间【xl,xr】的,可持久化树状数组,可以实现,但是会很麻烦,考虑用......
  • 求有序链表交集
    一、题目二、我的解答思想:因为递增有序,所以两个指针依次遍历,这次就不考虑相等的情况了,默认为严格递增。list*intersection(list*L1,list*L2){ if(!L1||!L2)returnNULL; list*p1=L1->next,*p2=L2->next,*p3=L1; while(p1&&p2){ if(p1->value==......
  • 豆瓣贴吧24小时自动顶帖脚本,随机延迟时间,按键精灵插件开源版!
    之前给客户定制的,定制了非常多的脚本和插件,这也是其中一个,我留着没用,就把源码直接给大家开源出来,方面大家学习一下,或者你可以把代码和UI界面的代码直接粘贴到你的按键精灵手机助手里面就能运行的,你可以试试,仅供学习用。ui界面:  ui界面2:  UI界面代码:================......
  • 2023-2024-1 20231418 《计算机基础与程序设计》第八周周总结
    2023-2024-120231418《计算机基础与程序设计》第八周周总结 这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业要求在哪里[2022-2023-1计算机基础与程序设计第八周作业]https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标学习C语言......