当前位置: 首页 > news >正文

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

在单链表、双链表和循环单链表中,若仅知道指针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)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Postman下载安装~用于springboot控制层测试
  • 【KAN】【API教程】get_fun
  • SolidEdge二次开发(C#)-环境配置
  • visual studio跳转到上一个/下一个光标处的快捷键设置
  • C# Solidworks二次开发------保存为不同格式
  • CAPL使用结构体的方式组装一条DoIP车辆声明消息(方法2)
  • 请问如何做好软件测试工作呢?
  • Kubernetes中的CRI、CNI与CSI:深入理解云原生存储、网络与容器运行时
  • Socket编程学习大纲
  • Python面试题:利用Python技术,如何使用SciPy进行科学计算与数值分析
  • 【深度学习】变分自编码器 VAE,什么是变分?(1)
  • C#进阶-轻量级ORM框架Dapper的使用教程与原理详解
  • NineData云原生智能数据管理平台新功能发布|2024年7月版
  • vue2怎么上传文件夹,并展示文件夹内的图片?
  • 7.怎么配置一个axios来拦截前后端请求
  • 【Leetcode】104. 二叉树的最大深度
  • ➹使用webpack配置多页面应用(MPA)
  • CentOS7简单部署NFS
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • idea + plantuml 画流程图
  • JS专题之继承
  • leetcode讲解--894. All Possible Full Binary Trees
  • mysql常用命令汇总
  • python 学习笔记 - Queue Pipes,进程间通讯
  • ReactNative开发常用的三方模块
  • vue-router的history模式发布配置
  • Yii源码解读-服务定位器(Service Locator)
  • 工作手记之html2canvas使用概述
  • 前言-如何学习区块链
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 如何在 Tornado 中实现 Middleware
  • 使用common-codec进行md5加密
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 硬币翻转问题,区间操作
  • 在Mac OS X上安装 Ruby运行环境
  • 责任链模式的两种实现
  • 06-01 点餐小程序前台界面搭建
  • Android开发者必备:推荐一款助力开发的开源APP
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​如何防止网络攻击?
  • !$boo在php中什么意思,php前戏
  • #VERDI# 关于如何查看FSM状态机的方法
  • #数据结构 笔记一
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (19)夹钳(用于送货)
  • (39)STM32——FLASH闪存
  • (二)springcloud实战之config配置中心
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)Oracle存储过程编写经验和优化措施
  • **PHP二维数组遍历时同时赋值
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core 6 集成 elasticsearch 并 使用分词器