面试150 链表的复制

在这里插入图片描述

思路

python可以使用调库法,使用深度拷贝

"""
# Definition for a Node.
class Node:def __init__(self, x: int, next: 'Node' = None, random: 'Node' = None):self.val = int(x)self.next = nextself.random = random
"""class Solution:def copyRandomList(self, head: 'Optional[Node]') -> 'Optional[Node]':return copy.deepcopy(head)

此外,新的想法就是我们采用字典去存储原节点—>复制后新的节点的映射关系

class Solution:def __init__(self):self.cached_node = {} #这个字典用于存储 原节点 -> 复制后的新节点 的映射关系。def copyRandomList(self, head: 'Optional[Node]') -> 'Optional[Node]':if head is None:return Noneif head not in self.cached_node:new_node = Node(head.val)self.cached_node[head] = new_nodenew_node.next = self.copyRandomList(head.next)new_node.random = self.copyRandomList(head.random)return self.cached_node[head]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/88001.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL分布式ID冲突详解:场景、原因与解决方案

引言 在分布式系统开发中,你是否遇到过这样的崩溃时刻?——明明每个数据库实例的自增ID都从1开始,插入数据时却提示“Duplicate entry ‘100’ for key ‘PRIMARY’”;或者分库分表后,不同库里的订单ID竟然重复&#x…

c++文字游戏_闯关打怪2.0(开源)

本次更新内容: 1.增强对手性能 2.可暂停(按N) 3.修复些许bug 4.增加boos关(第10、20、30...关) 1. 游戏概述 本游戏是一个基于Windows控制台的回合制战斗游戏,采用俯视视角的2D平面设计。玩家控制角色"p"在1325大小的封闭场景中与敌人"@"战斗,通过…

Java学习第十二部分——idea各种项目简介

目录 一.前言 二.语言介绍 三.生成器介绍 四.拓展 一.前言 打开idea项目创建时发现如上情况,“新建项目”下面的是语言,生成器下面的是这些语言对应的生成器工具,本文将简单介绍。 二.语言介绍 Java 用途:Java是一种广泛使…

Codeforces Round 868 (Div. 2) D. Unique Palindromes(1900,构造)

Problem - D - Codeforces 不错的字符串构造体,记录一下 首先注意到k≤20这一条件。对于一个长度为n的字符串,最多有n个不同的回文子串,这种情况出现在所有字符都相同时。因此,限制条件中的xi必须满足xi≤ci,且相邻两…

ClickHouse 全生命周期性能优化

引言 ClickHouse作为列式存储的OLAP数据库,以其极致的查询性能著称,但"高性能"并非开箱即用。不合理的表设计、SQL写法或集群配置,可能导致性能衰减甚至服务不可用。本文基于ClickHouse 24.3版本,从设计规范、开发规范、…

Linux sed 命令 详解

在 Linux 系统中,sed(Stream Editor)是一个非常强大且灵活的文本处理工具。它不仅可以用于简单的文本替换、删除和插入操作,还能实现复杂的文本转换任务。 📌 一、什么是 sed? sed 是一个基于模式匹配对文…

项目进度同步不及时,如何提升信息透明度

项目进度同步不及时的核心问题包括沟通渠道不畅通、缺乏统一的信息平台、未建立明确的进度更新机制、团队意识不足、责任划分不明确等。其中,缺乏统一的信息平台最为关键。统一的信息平台能够确保所有相关人员实时掌握最新的进度状态,避免信息孤岛&#…

使用各种CSS美化网页

实验目的1.理解CSS的概念,掌握CSS定义样式的方法,具备使用CSS和相关库进行界面样式设计的能力。 2.掌握Bootstrap 5的基本使用方法。3.Bootstrap框架练习实验步骤1. 实验准备创建一个HTML文件(如 index.html)。引入Bootstrap5的CS…

在PPT的文本框中,解决一打字,英文双引号就变成中文了

问题:在制作PPT的过程中,插入文本框,在里面输入代码类的格式时,使用英文的双引号"",但是只要在后面输入内容,或者逗号等,英文双引号就变成中文了,很烦原因:大概…

iOS 证书过期如何处理

找到钥匙串位置创建新的CSR文件。点击菜单中钥匙串访问—>证书助理—>从证书颁发机构请求证书…进入证书助理,填写信息(用户名称和邮箱随便写),请求是 选择 存储到磁盘创建好CSR文件,回到developer 证书管理中心…

CODESYS + 全志T113-i + 国产系统OneOS,打造新一代工业控制解决方案!

创龙科技与中移物联网有限公司、CODESYS携手合作,成功实现了T113-i工业评估板对国产系统OneOS CODESYS软件的适配,此举将让工业自动化领域的工程师们更高效地开发,并为众多企业产品的快速上市提供强有力的保障。 解决方案简介 CODESYS简介 …

三、jenkins使用tomcat部署项目

一、安装tomcattomcat本来应该是第3台服务器的(第一台:gitlab,第二台:jenkins,第三台:tomcat),我这里资源有限,就把tomcat安装jenkins服务器了。#解压tocmcat [rootbogon…

华为eNSP防火墙实验(包含详细步骤)

拓扑图 这里要用的防火墙是 , 需要导入 目录 防火墙配置1(启动图形化界面) cloud配置 缓冲区服务器配置 防火墙配置2(各端口的ip地址) 外部路由器配置 本地路由器配置 防火墙配置3(配置安全策略&a…

Linux/Unix线程及其同步(create、wait、exit、互斥锁、条件变量、多线程)

线程 文章目录线程I 线程基本概念1、为什么引入线程2、PthreadsII 线程基本操作1、创建线程2、终止线程3、线程ID4、连接已终止线程5、线程基本操作示例III 通过互斥量同步线程1、基本概念2、互斥量(Mutex)3、静态分配互斥量4、互斥量锁定与解锁5、互斥量…

vue3 el-table 行数据沾满格 取消自动换行

在 Vue.js 使用 Element UI 或 Element Plus 的 <el-table> 组件时&#xff0c;如果你希望其中的单元格内容不自动换行&#xff0c;可以通过设置 CSS 样式来实现。这里有几种方法可以做到这一点&#xff1a;方法1&#xff1a;使用 CSS 样式你可以直接在 <el-table-col…

操作系统级TCP性能优化:高并发场景下的内核参数调优实践

在高并发网络场景中&#xff0c;操作系统内核的TCP/IP协议栈配置对系统性能起着决定性作用。本文聚焦操作系统层面&#xff0c;深入解析内核参数调优策略&#xff0c;帮助读者构建稳定高效的网络通信架构。 一、连接管理参数优化&#xff1a;从三次握手到队列控制 1.1 监听队列…

基于物联网的智能交通灯控制系统设计

标题:基于物联网的智能交通灯控制系统设计内容:1.摘要 摘要&#xff1a;随着城市交通流量的不断增加&#xff0c;传统交通灯控制方式已难以满足高效交通管理的需求。本研究的目的是设计一种基于物联网的智能交通灯控制系统。方法上&#xff0c;该系统利用物联网技术&#xff0c…

nodejs中使用UDP传递信息

什么是UDP?UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是一种无连接的网络传输协议&#xff0c;位于 OSI 模型的传输层&#xff08;第四层&#xff09;&#xff0c;与 TCP&#xff08;传输控制协议&#xff09;同为互联网的核心协议之一。它…

App Trace功能实战:一键拉起应用实践

一、App Trace功能概述App Trace是一种用于监控和分析应用启动流程的技术&#xff0c;它可以帮助开发者&#xff1a;追踪应用冷启动/热启动的全过程分析启动过程中的性能瓶颈优化应用启动速度实现应用间的快速拉起二、一键拉起应用的实现方案1. Android平台实现方案1&#xff1…

Flink ClickHouse 连接器数据读取源码深度解析

一、引言 在大数据处理流程中&#xff0c;从存储系统中高效读取数据是进行后续分析的基础。Flink ClickHouse 连接器为我们提供了从 ClickHouse 数据库读取数据的能力&#xff0c;使得我们可以将 ClickHouse 中存储的海量数据引入到 Flink 流处理或批处理作业中进行进一步的分析…