首页 > 其他分享 >随机链表的复制

随机链表的复制

时间:2024-04-15 13:59:40浏览次数:30  
标签:Node map cur val get next 链表 复制 随机

 

随机链表的复制

 

/*
// Definition for a Node.
class Node {
    int val;
    Node next;
    Node random;

    public Node(int val) {
        this.val = val;
        this.next = null;
        this.random = null;
    }
}
*/

class Solution {
    public Node copyRandomList(Node head) {
        Map<Node,Node> map = new HashMap<>();
        Node cur = head;
        // 1. 
        while (cur != null) {
            Node node = new Node(cur.val);
            map.put(cur,node);
            cur = cur.next;
        }

        cur = head;
        // 2.
        while (cur != null) {
            map.get(cur).next = map.get(cur.next);
            map.get(cur).random = map.get(cur.random);
            cur = cur.next;
        }
        return map.get(head);

    }
}

 

标签:Node,map,cur,val,get,next,链表,复制,随机
From: https://www.cnblogs.com/xumu7/p/18135784

相关文章

  • python-深浅复制,可变/不可变对象
    #深复制(拷贝)'''importcopya=[1,2,3,[4,5,6]]#深拷贝a_deepcopy=copy.deepcopy(a)print(id(a))#140399549872448print(id(a_deepcopy))#140399549873280a[2]=100print(a)#[1,2,100,[4,5,6]]print(a_deepcopy)#[1,2,3......
  • 链表中环的入口结点
       1.先用快慢指针判断是否存在环2.返回快慢指针相遇的地方,一个指针停留在那里。3.另一个指针回到头节点4.两个节点一起走,每次走一格,再次相遇的地方就是入口节点publicclassSolution{    //判断有没有环,返回相遇的地方    publicListNodehasCycle(ListN......
  • 深拷贝、浅拷贝、直接复制的区别
    深拷贝、浅拷贝、直接复制的区别不妨举一个例子,有一个名为Date的类和一个名为Time的类,如下定义:classDate:def__init__(self,year,month,day):self.year=yearself.month=monthself.day=daydef__str__(self):returnf......
  • 链表2: 动态单链表
    链表2:动态单链表定义数据结构//定义链表数据结构typedefstructLNode{intdata;structLNode*next;}LNode;初始化链表//初始化链表LNode*Init_LinkList(){//返回头指针//创建头结点LNode*header=(LNode*)malloc(sizeof(LNode));hea......
  • 链表1: 静态单链表
    链表1:静态单链表单链表的结构链表包含了数据域与指针域,数据域存储数据,指针域存储下一个结点的地址链表的特点链表的优势在于数据的删改,在链表中查询第$i$个元素需要从第一个结点开始遍历链表,,因此在数据的顺序读取中链表的优势不如数组.链表的插入操作设newN......
  • JZ76 删除链表中重复的节点
    1、相似题classSolution{public:ListNode*deleteDuplicates(ListNode*head){//判空if(head==NULL)returnnullptr;ListNode*p1=head;ListNode*p2=p1->next;while(p2){......
  • 数据结构-链表
    数据结构-链表1.链表的基本概念:链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和指向列表中下一个节点的引用(或指针)。2.单向链表:单向链表的每个节点只有一个指向下一个节点的链接。这种结构使得遍历只能单向进行,从头节点开始到尾节点结束。classNode:d......
  • Sql Server对等复制中将截断字符串或二进制数据。 (源: MSSQLServer,错误号: 8152)
    近期发现好好的复制突然出现了报错,导致备份库数据不一致的问题,如下 一直以为是发布数据库进行了DDL操作没有同步到这边来,导致数据同步时长度不够导致的,结果把表都检查了一遍也没发现啥不对劲最后只好去找相关资料,结果找到了官方资料(目前老项目用的14版本) 这边有几个......
  • java的两个bean之间复制属性,所有属性中替换某几个字符
    以下是实现代码:importjava.beans.PropertyDescriptor;importjava.lang.reflect.InvocationTargetException;importjava.util.ArrayList;importjava.util.List;importorg.springframework.beans.BeanUtils;publicclassBeanCopyUtil{/***复制bean属性......
  • 随机变量及期望方差
    1.随机变量随机变量是一些概率事件通过某些方式映射到实数域后对应的变量,随机变量的抽象意味着我们可以通过数学工具来对这些事件做一些分析,站在coder的角度,可以理解为一些映射关系随机变量分为离散型和连续型,离散型如掷骰子这种结果集是一个个离散的值,连续型则是像绳子的长......