《链表》学习——链表理论基础

devtools/2025/2/24 1:47:32/

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

链表的入口节点,链表的头节点,head

链表的类型:

链表节点的定义:

定义链表节点方式:

// 单链表
struct ListNode {int val;  // 节点上存储的元素ListNode *next;  // 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {}  // 节点的构造函数
};

若自定义构造函数,初始化节点,那么在初始化的时候能直接给变量赋值。若采用默认构造函数初始化节点,那么则不能直接给变量赋值。

自定义构造函数初始化节点:

ListNode* head = new ListNode(5);

链表的操作

删除节点:将一个节点的next指针指向另一个节点。同时,需要手动释放该节点的内存。

添加节点链表的增添和删除都是O(1)操作,不影响其他节点。但,若删除第五个节点,则需要从头节点查找到第四个节点,通过next指针进行删除操作,查找的时间复杂度是O(n)。

这里需要注意:删除操作和查找再删除操作,实际意义不同。

 注意:

数组,在定义的时候,长度就是固定的,如果想改动数组的长度,就需要重新定义一个新的数组。

链表,长度是不固定的,并且可以动态增删,适合数据量不固定,频繁增删,较少查询的场景。


http://www.ppmy.cn/devtools/161258.html

相关文章

Redis初识

目录 关于Redis 分布式系统 Redis特性 Redis应用场景 Redis环境搭建 redis客户端介绍 关于Redis Redis 是在分布式系统中,才能发挥威力的,如果只是单机程序,直接通过变量存储数据的方式是比使用 Redis 更优的选择 Redis 其实就是基于…

华为发力中端,上半年nova14下半年nova15,大力普及原生鸿蒙

在智能手机市场的激烈竞争中,华为始终以创新者的姿态不断突破。2025年,华为在中端手机领域投下两颗重磅炸弹——上半年推出nova14系列,下半年接力发布nova15系列,且全系搭载原生鸿蒙系统,售价覆盖2000-4000元价格带&am…

如何在本地和服务器新建mysql用户和密码

文章目录 一. MySQL安装和卸载二. 新建mysql用户,测试连接2.1 服务器中语法操作2.2 宝塔面板中安装 三. 注意 一. MySQL安装和卸载 MySQL安装 点开下面的链接:https://dev.mysql.com/downloads/mysql/ 安装msi安装包即可。下载新版本的mysql前应该先卸…

基于springboot+vue的考研互助平台

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

本地部署MindSearch(开源 AI 搜索引擎框架),然后上传到 hugging face的Spaces——L2G6

部署MindSearch到 hugging face Spaces上——L2G6 任务1 在 官方的MindSearch页面 复制Spaces应用到自己的Spaces下,Space 名称中需要包含 MindSearch 关键词,请在必要的步骤以及成功的对话测试结果当中 实现过程如下: 2.1 MindSearch 简…

服务搭建 ollama + Deepseek + Open WebUI + 硅基流动API

文章目录 一、ollamaollama 安装ollama 配置 二、 Deepseek 模型下载三、 Open WebUI1、安装 Docker2、安装 WebUI 镜像3、确认镜像安装成功4、客户端访问5、平台使用5、外部服务器6、外部接入硅基流动API I know, i know 地球另一端有你陪我 一、ollama 功能类似 dock…

记录 pycharm 无法识别提示导入已有的模块解决方案 No module named ‘xxx‘

在windows下,使用pycharm开发项目,每个项目都有自己独立的虚拟环境,有时候就会出现,在该项目中明明已经安装了某个模块,但是在写代码的时候就是导入不了,无法识别导入,在运行的时候却又是正常的…

区块链中的数字签名:安全性与可信度的核心

数字签名是区块链技术的信任基石,它像区块链世界的身份证和防伪标签,确保每一笔交易的真实性、完整性和不可抵赖性。本文会用通俗的语言,带你彻底搞懂区块链中的数字签名! 文章目录 1. 数字签名是什么?从现实世界到区块…