数据结构--删除单链表中的某一个节点(时间复杂度控制为O(1))

news2024/11/25 0:51:17

在这里插入图片描述

题目描述🍗

只给定单链表中某个结点p(并非最后一个结点,即p->next!=NULL)指针,删除该结点

思路分析🍗

结点不重要,,重要的是数据
不删自己,删除后面的结点:
1.把后面结点数据复制到当前

2.删除后一个结点

在这里插入图片描述

完整代码🍗

//只给定单链表中某个结点p(并非最后一个结点,即p->next != NULL)指针,删除该结点; (面试重点)
//删除成功返回true,失败返回false
bool DelNode(List plist, Node* pToDel)
{
	if (pToDel == NULL)
		return false;
	Node* p;
	//不是最后一个节点
	if (pToDel->next != NULL)//删除pToDel后一个节点
	{
		p = pToDel->next;
		pToDel->data = p->data;//把后一个节点的数据复制到pToDel,这样删除后一个就相当于删除pToDel
		pToDel->next = p->next;
		free(p);
		return true;
	}

	//如果pToDel是最后一个节点,那么就必须找到它的前驱
	for (p = plist; p->next != NULL && p->next != pToDel; p = p->next)
		;
	if (p->next == NULL)//没有pToDel
		return false;

	p->next = NULL;
	free(pToDel);
	return true;
}

int main()
{
	Node head;
	InitList(&head);
	for (int i = 0; i < 10; i++)
	{
		Insert_tail(&head, i);
	}
	Show(&head); 
	Node* p1 = Search(&head, 0);//第0个节点 
	Node* p2 = Search(&head, 5);//第5个节点 
	Node* p3 = Search(&head, 9);//第9个节点 
	DelNode(&head, p1); 
	DelNode(&head, p2); 
	DelNode(&head, p3); 
	Show(&head); 

	return 0; 
}

在这里插入图片描述


本篇完!🍗

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

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

相关文章

【Word】写论文,参考文献涉及的上标、尾注、脚注 怎么用

一、功能位置 二、脚注和尾注区别 1.首先脚注是一个汉语词汇&#xff0c;论文脚注就是附在论文页面的最底端&#xff0c;对某些内容加以说明&#xff0c;印在书页下端的注文。脚注和尾注是对文本的补充说明。 2.其次脚注一般位于页面的底部&#xff0c;可以作为文档某处内容的…

苹果发布开源模型;盘古大模型5.0将亮相;英伟达将收购 Run:ai

苹果首次发布开源语言模型 近期&#xff0c;苹果在 Hugging Face 发布了 OpenELM 系列模型。OpenELM 的关键创新是逐层扩展策略&#xff0c;该策略可在 transformer 模型的每一层中有效地分配参数&#xff0c;从而提高准确性。 与具有统一参数分配的传统语言模型不同&#xff…

Java中一个汉字究竟占几个字节?

前言 在今天&#xff0c;“Java中一个汉字占几个字符”的问题&#xff0c;让我提起了兴趣 在我的记忆中&#xff0c;一个字符应该是占两个字符的。但看了他人的回答 发现自己对这方面了解非常片面&#xff0c;于是痛定思痛潜心学习&#xff0c;写下这篇博客 总结不足文章目录 …

架构师技能:技术深度硬实力透过问题看本质--深入分析nginx偶尔502错误根因

以架构师的能力标准去分析每个问题&#xff0c;过后由表及里分析问题的本质&#xff0c;复盘总结经验&#xff0c;并把总结内容记录下来。当你解决各种各样的问题&#xff0c;也就积累了丰富的解决问题的经验&#xff0c;解决问题的能力也将自然得到极大的提升。励志做架构师的…

Spring打印Logo

在Spring Boot项目中&#xff0c;你可以通过创建一个banner.txt文件来设置启动时打印的Logo。下面是一些具体的步骤&#xff1a; 在资源文件夹下创建banner.txt文件&#xff1a;在你的Spring Boot项目的src/main/resources目录下新建一个名为banner.txt的文件。 生成或设计Log…

Java从坚持到精通-SpringAI

1.加入坐标 2.项目配置 如上图&#xff0c;SpringAI需要api-key和base-url&#xff0c;都是需要科学上网才可以。 3.编写方法 直接注入OpenAIChatClient对象即可&#xff0c;高版本springboot已经自动装配了。 然后调用该方法的call方法&#xff0c;表示发送请求。 4.生成图…

k8s拉取不了私有镜像问题

报错 kubectl describe pod run-nfs-client-provisionercrictl pull 172.24.4.59/library/spark_lijia:3.5.1报错问题&#xff1a;“k8s拉取不了私有镜像” 可能是由于以下几个原因造成的&#xff1a;认证问题&#xff1a;私有镜像库可能需要用户名和密码才能拉取镜像。网络问…

背靠TON公链的Notcoin游戏项目,能否杀出GameFi的红海?

4月15日消息&#xff0c;Telegram生态中的游戏及Meme项目Notcoin&#xff0c;最近在X平台公布了令市场瞩目的代币经济学方案。据悉&#xff0c;NOT的总供应量高达1027亿枚&#xff0c;其中78%将分配给矿工和Voucher持有者&#xff0c;余下的22%预留给未来新用户、交易者及各类上…

【mysql】mysql中的数据类型知多少?

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

重学java 26.面向对象 内部类⭐

“别担心&#xff0c;你一定能如愿。” —— 24.4.29 1.什么时候使用内部类&#xff1a; 当一个事物的内部&#xff0c;还有一个部分需要完整的结构去描述&#xff0c;而内部的完整结构又只为外部事物提供服务&#xff0c;那么整个内部的完整结构最好使用内部类 比如&#xff1…

React的useEffect

概念&#xff1a;useEffect是一个React Hook函数&#xff0c;组件渲染之后执行的函数 参数1是一个函数&#xff0c;可以把它叫做副作用函数&#xff0c;在函数内部可以放置要执行的操作参数2是一个数组&#xff08;可选参&#xff09;&#xff0c;在数组里放置依赖项&#x…

旧物焕新生:探索旧物回收小程序的开发与应用

随着社会的快速发展&#xff0c;我们的生活节奏日益加快&#xff0c;物质需求也在不断膨胀。然而&#xff0c;随之而来的却是资源的浪费和环境的压力。在这样的背景下&#xff0c;旧物回收小程序应运而生&#xff0c;为我们提供了一个绿色、环保、便捷的生活新选择。 旧物回收…

Android Kernel源码下载方法

Android Kernel的源码是git管理的&#xff0c;和之前下载的Android源码管理方式不一样&#xff0c;所以下载方式也不一样&#xff0c;直接用git下载就可以了&#xff1b;去网上搜的下载方式五花八门&#xff0c;有很多问题&#xff0c;因为服务器经常无法访问&#xff0c;也一直…

C++笔记:类和对象(二)->继承

上篇内容&#xff1a;C中的重载 继承 继承是什么 在类和对象(一)->封装中说了&#xff0c;封装是将对应的属性和行为封装到一个类中。 那什么是继承呢&#xff1f; 比如一个学校有老师和同学还有领导&#xff0c;那么我们最开始的想法就是每个职位都去封装一个类&#xff0c…

免费通配符证书的申请指南——从申请到启动https

如果您的网站拥有众多二级子域名&#xff0c;那么通配符证书证书是最好的选择。 免费通配符申请流程如下&#xff1a; 1 创建证书服务商账号 首先选择一个提供免费通配符的服务商&#xff0c;打开国产服务商JoySSL官网&#xff0c;创建一个账号&#xff08;注册账号时填写注册…

共享办公室——一种成熟的工作空间解决方案

在固定的框架外寻求灵活性与创新&#xff0c;共享办公室租赁提供了一个动态且富有成本效益的工作环境&#xff0c;适应了快节奏和变化多端的商务需求。 随着创业文化的蓬勃发展和远程工作模式的流行&#xff0c;共享办公室以其独特的优势迅速成为市场上的新秀。它推动了工作…

深入理解 ANR WatchDog 库

ANR WatchDog 是一个用于检测 Android 应用程序中的 ANR (应用程序无响应) 的开源库。本文将深入探讨这个库的工作原理、如何集成到你的应用中&#xff0c;以及它如何帮助你避免用户体验不佳的情况。 ANR WatchDog 库的工作原理 ANR WatchDog 通过一个简单的机制来检测ANR&am…

如何学习网络安全?网络安全零基础入门,看这一篇就够了!

一、概述&#xff1a; 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断。这涉及到保护企业数据、国家基础设施、知识产权以及维护网络…

伪装目标检测论文阅读 SAM大模型之参数微调:Conv LoRA

paper&#xff1a;link code&#xff1a;还没公开 摘要 任意分割模型(SAM)是图像分割的基本框架。虽然它在典型场景中表现出显著的零镜头泛化&#xff0c;但当应用于医学图像和遥感等专门领域时&#xff0c;其优势就会减弱。针对这一局限性&#xff0c;本文提出了一种简单有效…

Linux_Ubuntu18.04安装过程

目录 1. 虚拟机安装2. 虚拟机创建3. Ubuntu x64安装4. 开启重启问题 1. 虚拟机安装 版本&#xff1a;VMware-workstation-full-16.0.exe 下一步 接受 下一步 下一步&#xff0c;注意安装位置。 下一步 下一步 点击安装 等待安装完成。 2. 虚拟机创建 创建新的虚拟机 典型 稍后…