删除单向链表中的某一个节点

2023-05-16

已知一个单向链表的表头head,写出一个删除某一个节点的算法,要求先找到此节点,然后删除。

#include<iostream>
using namespace std;
typedef struct node
{
	int number;
	struct node *next;
}Node;
Node *Delete(Node *head,int key)
{
	Node *node1=head;
	Node *node2=NULL;
	if (head==NULL)
	{
		return NULL;
	} 
	else
	{
		if (node1->number==key)
		{
			head=head->next;
			free(node1);
			return head;
		} 
		else
		{
			while (node1!=NULL)
			{
				node2=node1;
				node2=node2->next;
				if (node2->number==key)
				{
					node1->next=node2->next;
					free(node2);
					break;
				}
				node1=node1->next;
			}
			return head;
		}
	}
}
int main()
{
	Node *head=(Node*)malloc(sizeof(Node));
	Node *p,*q,*q1;
	int key;
	p=(Node*)malloc(sizeof(Node));
	q1=q=head;
	int i;
	for (i=1;i<10;i++)
	{
		p->number=i;
		head->next=p;
		head=p;
		p=(Node*)malloc(sizeof(Node));
	}
	head->next=NULL;
	cout<<"原链表数据: "<<endl;
	q1=q1->next;
	while (q1!=NULL)
	{
		cout<<q1->number<<" ";
		q1=q1->next;
	}
	cout<<endl;
	cout<<"输入要删除的数据:";
	cin>>key;
	p=Delete(q->next,key);
	cout<<"删除一个"<<key<<"之后的链表数据: "<<endl;
	while (p!=NULL)
	{
		cout<<p->number<<" ";
		p=p->next;
	}
	cout<<endl;
	free(p);
	free(head);
	return 0;
}


运行结果:

原链表数据:
1 2 3 4 5 6 7 8 9
输入要删除的数据:6
删除一个6之后的链表数据:
1 2 3 4 5 7 8 9

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除单向链表中的某一个节点 的相关文章

  • unity 3D学习日记:创建一个小场景并编写简单C#移动脚本

    学习Unity 3D第一周 xff0c 完成的目标一是创建一个小场景 xff0c 用角色控制器在场景里行走 xff1b 二是编写一个简单的移动脚本 一 创建一个小场景 xff0c 用角色控制器在场景里行走 1 先安装Unity 3D 5 3
  • 基于Unity3D平台的三维虚拟城市研究与应用

    0 引 言 随着现代城市的不断拓展延伸 城市空间多层次 立体模式管理逐渐成为城市规划管理的发展趋势 1 实现城市空间信息管理模式从二维到三维的转变 三维虚拟城市技术 已经成为人们关注和研究的热点 2 三维虚拟系统具有多维信息处理 表达和分析
  • unity:C#控制人在真实环境中行走

    自己在学习unity的课程中遇到了 xff0c 有的地方还没怎么太理解上去 xff0c 先做个笔记 xff0c 顺便看看有没有需要的人 1 搭建一个小场景 xff0c 一个需要控制的 人 xff08 添加CharacterControlle
  • unity 3D:自动寻路

    首先 xff0c 搭建一下场景 xff0c 场景要求 xff1a 有遮挡 xff0c 设置好不可走区域为navigation static 以及 not walkable 在人身上添加Nav Mesh Agent 设置好后勾选显示导航网格
  • 数据结构 ——c++实现(知识点集合)

    数据结构 c 43 43 实现 xff08 知识点集合 xff09 某不知名学狗的复习记录 xff0c 包含数据结构基本概念 xff0c 线性表 xff0c 栈 队列 递归 xff0c 串 数组 广义表和树和森林内容整理 主要整理了知识点
  • Unity3D 使用SceneManager跳转/加载场景

    很久没有更新博客了 xff0c 最近也是还在学习U3D 下面写一下使用SceneManager跳转 加载场景 我们假设要点击一个按钮跳转 xff0c 那么我们只要把跳转的代码写进按钮点击事件里就好了 其实加载场景很简单 xff0c 只需要写
  • [OpenCV] aruco Markers识别 小车巡线

    小车巡线代码 include lt ros ros h gt include lt sensor msgs Image h gt include lt geometry msgs Twist h gt include lt cv bridg
  • 备份ubuntu

    在使用Ubuntu之前 xff0c 相信很多人都有过使用Windows系统的经历 如果你备份过Windows系统 xff0c 那么你一定记忆犹新 xff1a 首先需要找到一个备份工 具 通常都是私有软件 xff0c 然后重启电脑进入备份工具
  • Docker - docker build 命令详解

    docker build 命令原理 docker build 命令从 Dockerfile 和上下文构建镜像构建的上下文 xff1a 位于指定 PATH 或 URL 中的一组文件构建过程可以引用上下文中的任何文件 xff0c 例如 xff0
  • RealSense二次开发

    转载 xff1a librealsense2查看相机设备信息 JavaShuo 文章目录 1 librealsense2设备信息读取 xff12 xff0e realsense 投影函数和反投影函数3 深度相机与彩色相机的坐标变换 1 li
  • 大规模MIP的精确算法和实现

    大规模MIP的精确算法和实现 大规模MIP的精确算法和实现 xff1a 目录第1部分 xff1a CPLEX的Java API详解1 CPLEX简介2 构建简单的模型3 CPLEX的高级应用 第2部分 xff1a Gurobi的Python
  • 两种Dockerfile文件配置

    注意 xff1a xxx是您的项目名称 xff01 Xmx xff1a 堆最大值 xff1b Xms xff1a 堆初始值 COPY指令只能从执行docker build所在的主机上读取资源并复制到镜像中 而ADD指令还支持通过URL从远程
  • 网络编程-----在线词典项目(服务器)

    服务器端 span class token macro property span class token directive keyword include span span class token string lt stdio h
  • 模型的图优化

    图优化 最近在整理之前的一些工作内容 记录下来温故而知新 在各种开源推理框架中 xff0c 我们总能看到有一种graph optimizer技术 xff0c 主要是对用户想要运行的网络模型进行一种网络结构层面的优化 xff0c 剔除不需要的
  • 学C++有多难,你知道吗?

    都2020年了 xff0c 还要学C 43 43 吗 xff1f C 43 43 好多理工科大学里面都有 xff0c 它的学习难度比其他编程语言比如Python Javascript 和Java等等难 那为什么呢 xff1f C 43 43
  • Ubuntu-KCF/DSST算法无人机跟踪仿真/实物保姆级教程

    KCF算法无人机跟踪 介绍 自己搭建的无人机跟踪实验 xff0c 主要讲软件 xff0c 硬件的需要等等 基础知识准备 整个系统需要两部分 xff0c 识别程序和控制无人机运动的程序 xff0c 都是Python脚本 xff0c 但运行需要
  • Linux基础入门:单片机和Linux有什么不同吗

    我发现很多初学者只有单片机基础 xff0c 甚至没有单片机基础 在学习Linux时 xff0c 对很多概念比较陌生 xff0c 导致不知道学什么 xff0c 也不知道学了之后有什么用 所以小编在此分享此文 第1章 单片机和Linux的区别
  • 为什么都说代码改变世界?是因为这五位程序员创造了未来!

    致敬那些为软件开发奠定坚实基础的计算机科学先驱 从 1 和 0 开始 xff0c 编程经历了很长一段路 xff0c 才达到了现在的抽象状态 过去的程序员用伟大的发明 xff0c 为现代程序员轻松地完成工作奠定了坚实的基础 如果我们研究某个软
  • C语言丨关键字enum用法详解,看这篇就够了

    一 关键字enum的定义 enum是C语言中的一个关键字 xff0c enum叫枚举数据类型 xff0c 枚举数据类型描述的是一组整型值的集合 xff08 这句话其实不太妥当 xff09 xff0c 枚举型是预处理指令 define的替代
  • Ubuntu下cmake使用入门

    CMake是一个跨平台的安装 xff08 编译 xff09 工具 xff0c 可以用简单的语句来描述所有平台的安装 编译过程 他能够输出各种各样的makefile或者project文件 其包含自己的语法结构 xff0c 只要按照其语法编写成

随机推荐