【数据结构与算法】单链表、双链表和循环单链表中头指针未知的情况下能否删除某节点

news2024/11/16 12:56:06

在单链表、双链表和循环单链表中,若仅知道指针p指向某结点,不知道头指针,能否将结点p从相应的链表中删去?为什么?若可以,其时间复杂度各为多少?


单链表:不能

在单链表中,需要知道p的前一个结点,才能更改其指向,跳过p结点,实现删除。因为不知道直接前驱,无法删除该节点。

双链表:可以

在双链表中,每个结点都有一个指向前一个结点的指针,因此可以直接找到p的前一个结点,然后将p的直接前驱指向p的直接后继,即可删除p。

p->prior->next=p->next
p->next->prior=p->prior

时间复杂度:O(1)

在这里插入图片描述

循环单链表:可以

先沿着循环链表找到p的直接前驱,将p的直接前驱指向p的直接后继即可删除p。因为要沿着循环链表找到p的直接前驱,即遍历一遍链表,时间复杂度为O(n)。

时间复杂度:O(n)

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

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

相关文章

一些爬虫代码的解析

import requests from bs4 import BeautifulSoup import time import logging import json from concurrent.futures import ThreadPoolExecutor import random# 配置日志 logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s)# 目标网页…

rocket 如何解决消息堆积问题、如何消息丢失问题、r安全问题(设置密码)、时间复杂度。

20240803 一、 如何解决消息堆积问题?一般认为单条队列消息差值>10w时 算堆积问题生产太快了线程数量的设置挤压问题 消费者消费出现问题如果堆积的消息不想要了,可以直接跳过堆积 二、 信息丢失问题为什么会丢失解决思路1 记录下来解决思路2 使用roc…

BulingBuling - 活法自如 [Reset Your Routine] - 2

2. What matters most to you? 学习如何优先考虑适合自己的日常工作。 Learn how to prioritize what fits into your routine. Get to your why (找到原因) 因此,当你开始制定新的个性化日常计划时,其中一个关键因素就是要深入挖掘什么对你来说才是真…

Kubernets(k8s) 网络原理一:Pod与宿主机通信

对于刚接触K8S的同学来说,K8S网络显得尤为复杂,例如Pod如何访问主机以及pod间如何进行通信等。本系列文章将站在一个初学者角度,逐层刨析Kubernetes网络实现原理,并利用基本的Linux命令加以实现。 网络虚拟化基石:net…

【Qt】QDial和QSlider

QDial QDial类用于创建一个旋转式的圆形控件,通过鼠标点击旋转、方向键或者pageUp和pageDown调整一个值。常用在需要进行连续调整的场景,比如音量控制、亮度控制、透明度调节等 常见属性 属性说明value持有的值minimum持有值所能到达的最小值maximum持有…

Fiddler抓包及设置

1、打开Fiddler.exe 2、设置过滤,只抓取具体网页或APP 3、勾选 Request Headers 中的 Hide if url contains 过滤项,贴入下方正则表达式:REGEX:(?index)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav|js|jpeg|webp)(\?.*)?$,表示过…

云计算 docker 管理镜像和容器

docker的概述 命令说明docker version查看服务器与客户端版本docker info查看 docker 服务配置信息 容器安装部署dnf install -y docker-ce systemctl enable --now docker 配置镜像仓库 镜像概述 镜像管理命令 镜像管理命令说明docker images查看本机镜像docker pull 镜像名…

HDU1100——Trees Made to Order以及卡特兰数

HDU1100——Trees Made to Order 题目描述 Problem - 1100 运行代码 #include <iostream> #include <vector> using namespace std; vector<long long> C(21, 1); // 第21个卡特兰数达到65亿 // 预处理卡特兰数 void Catalan() {for (int i 1; i < 2…

网络学习:应用层DNS域名解析协议

目录 一、简介 二、工作流程 一、简介 DNS( Domain Name System)是“域名系统”的英文缩写&#xff0c;是一种组织成域层次结构的计算机和网络服务命名系统&#xff0c;它用于TCP/IP网络&#xff0c;它所提供的服务是用来将主机名和域名转换为IP地址的工作。 同时,DNS…

[Leetcode 875][Medium]-爱吃香蕉的珂珂-二分搜索

目录 一、题目描述 二 、整体思路 三 、代码 一、题目描述 原题地址 二 、整体思路 题目要求在时间h内(含h)&#xff0c;求解最小速度k。那么首先要知道速度与吃香蕉所用时间的关系。 假设速度为k&#xff0c;那么吃香蕉所用时间t就等于每堆香蕉piles[i]除以速度k所得的向…

电子元器件—电容和电感(一篇文章搞懂电路中的电容和电感)(笔记)(面试考试必备知识点)电容和电感作用、用途、使用、注意事项、特点等(面试必备)-笔记(详解)

作者&#xff1a;Whappy 座右铭&#xff1a;不曾拥有&#xff0c;何来失去&#xff01; 时间&#xff1a;2024年8月2日08:40:04 一、电容的作用 储能&#xff1a; 电容器通过充电储存电荷在电容板上&#xff0c;形成电场储存电能。当需要释放储存的电能时&#xff0c;电荷…

django集成pytest进行自动化单元测试实战

文章目录 一、引入pytest相关的包二、配置pytest1、将django的配置区分测试环境、开发环境和生产环境2、配置pytest 三、编写测试用例1、业务测试2、接口测试 四、进行测试 在Django项目中集成Pytest进行单元测试可以提高测试的灵活性和效率&#xff0c;相比于Django自带的测试…

回测本身就是一种过度拟合?

这也许是一个絮絮叨叨的专题&#xff0c;跟大伙儿唠一唠量化相关的小问题&#xff0c;有感而发写到哪算哪&#xff0c;这是第一期&#xff0c;先唠个10块钱的~ 前段时间在某乎上看到这样一个问题『您怎么理解回测本身就是一种过度拟合&#xff1f;』 个人看来&#xff0c;回测本…

JavaWeb学习——mybatis

目录 一、入门学习 1、什么是mybatis&#xff1f; 2、入门使用 3、配置SQL提示 4、数据库连接池 5、lombok 二、基础操作学习 1、删除 2、新增 3、更新 4、查询 三、XML配置文件 1、映射规范 2、示例代码展示 四、动态SQL 1、学习 2、学习 3、学习 4、学习 一…

TCP/IP协议:互联网通信的基础

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【深度学习】【框架】【基本结构】激活函数

1. relu 2. softmax 3. sigmoid 4. silu 函数&#xff1a;f(x) x * sigmoid(x) 优点&#xff1a; 它既有 ReLU&#xff08;Rectified Linear Unit&#xff09;激活函数的一些优点&#xff08;例如&#xff0c;能够缓解梯度消失问题&#xff09;&#xff0c;又能解决 ReLU …

JavaEE---Spring MVC(2)

5.传递数组 当请求中参数是多个的时候,浏览器就会封装成一个数组 下面是在postman中返回的值 6.传递集合 运行的时候报错了,状态码是500,表示此时是服务器的错误,我们去查看后端源码发现 默认封装的是数组而不是List接口 修改方式: 此时我们就拿到了列表的值 状态码是HT…

文案生成器有哪些?4款为你一键生成原创文案

大家好&#xff01;今天来分享一波超级实用的干货——文案生成器&#xff01;在今天这个信息爆炸的时代&#xff0c;咱们无论是打理社交媒体&#xff0c;还是搞广告宣传等等&#xff0c;对优质文案的需求那是与日俱增。可有时候&#xff0c;灵感枯竭、时间紧迫&#xff0c;怎么…

测试类型分类

前言&#x1f440;~ 上一章我们介绍了如何设计一个测试用例&#xff0c;接下来我们对测试类型进行分类以便更好的了解和分清不同测试测试的内容、对象、时间点等 按照测试对象划分 界面测试&#xff08;也称UI测试&#xff09; 可靠性测试 容错性测试 文档测试 兼容性测…

vue2怎么上传文件夹,并展示文件夹内的图片?

我使用的是element-ui组件库,发现el-upload组件并不能满足需求,于是用原生实现一下,这里贴一下关键代码,如果大家有更好的实现方法,欢迎分享!! 实现效果: