力扣:链表篇章

news2024/11/18 17:24:27

1、链表

链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。
在这里插入图片描述

2、链表的类型

(1)单链表
单链表中的指针域只能指向节点的下一个节点。
在这里插入图片描述

(2)双链表
双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。
因此双链表既可以向前查询也可以向后查询。
在这里插入图片描述
(3)循环链表
循环链表就是链表首尾相连,可以用来解决约瑟夫环问题。
在这里插入图片描述

3、链表的存储方式

链表在内存中不是连续分布的,通过指针域的指针链接内存中各个节点。
链表中的节点散乱分布在内存中的某地址上,分配机制取决于操作系统的内存管理。
在这里插入图片描述
例如:这个链表起始节点为2, 终止节点为7, 各个节点分布在内存的不同地址空间上,通过指针串联在一起。

4、如何实现链表

(1)定义链表

class ListNode:
    def __init__(self, val, next=None):
        self.val = val
        self.next = next

(2)操作链表

删除节点

只要将C节点的next指针 指向E节点就可以了。
但是D节点依然存留在内存里,只不过是没有在这个链表中而已。所以在C++里最好再手动释放这个D节点,释放这块内存。
其他语言例如Java、Python,就有自己的内存回收机制,就不用自己手动释放了。
在这里插入图片描述

添加节点

链表的增添和删除都是O(1)操作,不会影响到其他节点。
但是要注意,查找的时间复杂度是O(n)。
在这里插入图片描述

(3)数组与链表对比

在这里插入图片描述

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

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

相关文章

软件开发人员从0到1实现物联网项目:需求分析

文章目录 前言市场调研线下考察竞品参考 项目目标功能需求用户端功能需求商家功能需求系统管理功能需求 非功能需求性能安全性易用性扩展性可靠性 小结 前言 上文对实现自助棋牌室项目涉及到的技术做了调研,尤其是物联网技术。那接下来就是对需求进行一番分析了&am…

Swing不显示图片

文件在同一目录下,这样写运行不显示图片 把路径改为绝对路径 程序正常运行

ubuntu 23开机界面美化教程

效果 方法 GRUB开机界面美化 从上述网站中,查找GRUB Themes分类,并下载GRUB主题包(tar.gz格式),如CyberSynchro.tar.gz; 解压下载得到的压缩包,得到CyberSynchro; 将CyberSynchro…

网络安全防御保护 Day7

1.因为FW1和FW2已处于双机热备状态,所以只需要对主设备进行配置即可。进入FW1的配置界面,选择“网络”界面,点击“IPsec”,进行IPsec通道的基本配置,这里选择的是“电信”链路。 2.完成上述配置后,进行待加…

springboot259交通管理在线服务系统的开发

交通管理在线服务系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装交通管理在线服务系统软件…

3505. 这也是一道排序题

一、题目 输入 10 7334774857 8461862436 540886577 5245195052 9194400521 5412986878 6694133363 1186771950 1405713915 7115286932 输出 -29430338967 二、思考 构造差分数组:C[i] A[i1] - A[i] 由题目条件可知:当A[i] A[i1] A[i-1] - A[i]时&am…

爱普生高稳定性温补晶振TG-5510CA和TG7050CMN的区别

爱普生之前同期推出过两款高精度温补晶振TCXO(TCXO),即晶体振荡器TG-5510CA和TG7050CMN。同属性能优异的温补晶振,它们有相同点,也有不同之处。相同的比如:外形尺寸、可输出的频率范围等。不同点在:工作温度、频率/温度…

代码随想录刷题笔记-Day32

1. 最大子序和 53. 最大子数组和https://leetcode.cn/problems/maximum-subarray/ 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组:是数组中的一个连续…

实战案例——Kafka集群部署

1. 规划节点 IP主机名节点192.168.100.10zookeeper1集群节点192.168.100.20zookeeper2集群节点192.168.100.30zookeeper集群节点 2. 基础准备 使用ZooKeeper集群搭建的3个节点来构建Kafka集群,因为Kafka服务依赖于ZooKeeper服务, 所以不再多创建云主机…

Spring Boot Configuration Processor使用

一、功能介绍 spring-boot-configuration-processor的作用就是将自己的配置你自己创建的配置类生成元数据信息,这样就能在你自己的配置文件中显示出来非常的方便。在META-INF目录下生成spring-configuration-metadata.json文件,从而告诉spring这个jar包…

大模型GPU监控之nvitop

背景 在进行大模型训练的时候,往往需要用到多张GPU卡,如何实现多卡的管理和监控,这是一个比较好的话题,下面介绍一个小工具。 安装nvitop pip install nvitop nvitop -m full 监控界面

二次封装 element-plus的Table 表格组件,减少代码臃肿

为什么要二次封装element-plus的Table 表格组件,言简意赅:以后难免会在表格里面加一些统一的逻辑,可以在表格里面书写重复的方法或样式 封装后的使用方式 props 参数类型可选值默认值说明tableDataArray——表格数据tableConfigArray——表…

【MySQL | 第四篇】区分SQL语句的书写和执行顺序

文章目录 4.区分SQL语句的书写和执行顺序4.1书写顺序4.2执行顺序4.3总结4.4扩充&#xff1a;辨别having与where的异同&#xff1f;4.5聚合查询 4.区分SQL语句的书写和执行顺序 注意&#xff1a;SQL 语句的书写顺序与执行顺序不是一致的 4.1书写顺序 SELECT <字段名> …

小程序学习 1

pages/goods/search/home.wxml首页功能设定 1. loading入场 2. 下拉刷新 3. 搜索栏 4. 分类切换 5. 商品列表 6. 规格弹层 7. 加载更多 <view style"text-align: center; color: #b9b9b9" wx:if"{{pageLoading}}"><t-loading theme"circula…

springboot-整合mybatis

1.导入依赖 <!--整合mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency><!--mysql--><dependen…

如何在Windows中对硬盘进行分区?这里有详细步骤

本文介绍如何在Windows11、10、8、7、Vista和XP中对硬盘进行分区 如果这个过程听起来比你想象的要复杂一点,不要担心,因为事实并非如此。在Windows中对硬盘进行分区一点也不难,通常只需要几分钟。以下是操作方法。 注意:这些说明适用于Windows 11、Windows 10、Windows 8…

Linux文件系列: 深入理解缓冲区和C标准库的简单模拟实现

Linux文件系列: 深入理解缓冲区和C标准库的简易模拟实现 一.缓冲区的概念和作用二.一个样例三.理解样例1.样例解释2.什么是刷新? 四.简易模拟实现C标准库1.我们要实现的大致框架2.mylib.h的实现1.文件结构体的定义2.myfopen等等函数的声明3.完整mylib.h代码 3.myfopen函数的实…

JEECMS相关语法最近更新(大家等一等,我刚开始写,有问题就问因为我也在做,发的都是实现得了)

JEECMS相关语法 1.[cms_channel_list parentId217]显示栏目标题图片与标题2.[cms_content_list count4 orderBy4 typeId1,2,3,4 titLen10 channelOption1 channelId96]显示内容图片与标题3.[cms_channel pathxypj]、[cms_content_list typeId1,2,3 count6 orderBy4 channelId22…

uniapp列表进入动画

app列表入场动画 - DCloud 插件市场 列表入场动画https://ext.dcloud.net.cn/plugin?id16957

为什么智能制造离不开MES管理系统

在当今日新月异的智能制造领域&#xff0c;MES管理系统以其独特的优势&#xff0c;成为引领车间智能化的核心技术系统。它不仅仅是一个简单的软件工具&#xff0c;更是企业实现生产优化、流程简化、效率提升、成本降低以及质量优化的重要支撑。 在生产工厂中&#xff0c;MES管…