首页 > 编程语言 >实现一个算法删除单链表L(有头结点)中的一个最小值结点

实现一个算法删除单链表L(有头结点)中的一个最小值结点

时间:2024-04-23 11:27:11浏览次数:30  
标签:Node 结点 单链 head 有头 LList 最小值 next 节点

/********************************************************************************************************
*
*	file name:	Zqh_splist_4.22.3.c
* 	author	 :	keyword2024@163.com
* 	date	 :	2024/04/23
* 	function :	设计一个算法删除单链表L(有头结点)中的一个最小值结点	
*	note	 :	考研题
*	
*  Copyright (c)  2023-2025   keyword2024@163.com    All right Reserved
* ******************************************************************************************************/

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>


typedef int DataType_t;

typedef struct LinkedList
{
	DetaType_t			data;
	struct LinkedList	*next;	
};LList_t

//删除单链表中最小值的节点(有头节点的)
void deleteMinNode(LList_t* head)
{
	//判断当前链表是否为空的情况
	if(NULL == head->next){
		printf("链表为空\n");
		return;
	}
	
	LList_t* Last == head ; //当前节点的上一级节点,目前指向头节点
	
	LList_t* Node = head->next;//当前节点,目前指向首节点

	LList_t* minNode = head ->next;//保存最小值的节点

	LList_t* minPrev = head; //保存最小值的上一个节点,方便连接


	//循环的查找最小值并保存下来
	while(Node != NULL){
		if (Node->data < minNode->data ){
			minNode =Node;  
			minPrev = Last; 
		}
	Last = Node;
	Node = Node ->next; 

	}

	//删除最小值 
	if ( head == minPrev )
		head->next = minNode->next;   //删除最小值节点是第一个

	 Last->next = minNode->next;  //连接
	 free(minNode);

}

标签:Node,结点,单链,head,有头,LList,最小值,next,节点
From: https://www.cnblogs.com/kencszqh/p/18152409

相关文章

  • 数据结构单向链表——找到并输出倒数第k个结点的数据
    /***********************************************************************************************funcname:LList_Last_k_find*function:Findthelastknodeoflinklistandprintdata*funcparameter:*@......
  • 笔试题:查找链表中倒数第k(k为正整数)个位置上的结点
    数据结构链表笔试题:(1)算法的基本设计思想:定义两个结构体指针FPhead和SPhead,其中,FPhead需要从头遍历链表,当FPhead和SPhead之间的距离相差k-1,则调动SPhead开始遍历链表,从而确定倒数第k个位置上的结点。(2)算法的详细实现步骤:定义一个整型变量用来储存两个结构体指针FPhead和SP......
  • 笔试题:设计一个算法删除单链表L(有头结点)中的一个最小值结点
    数据结构——笔试题设计一个算法删除单链表L(有头结点)中的一个最小值结点/*********************************************************funcname:DelMinNode*author:15070884254@163.com*date:2024/04/22*function:删除单链表L(有头结点)中的一个最......
  • JZ8 二叉树的下一个结点
    #include<cstddef>classSolution{public:vector<TreeLinkNode*>nodes;//用户得到的输入只有一个子树根节点TreeLinkNode*GetNext(TreeLinkNode*pNode){TreeLinkNode*root=pNode;//获取根节点 //顺着next指针一直......
  • 查找链表中倒数第k(k为正整数)个位置上的结点,查找成功输出该结点的data值,并返回1,否则只
    /********************************************************name:FindKNode* function:查找链表中倒数第k(k为正整数)个位置上的结点*查找成功输出该结点的data值,并返回1,否则只返回0*argument*@head:链表头结点的地......
  • 删除最小值结点
    /********************************************************name:DelTargetNode* function:删除单链表L(有头结点)中的一个最小值结点*argument*@L:链表头结点的地址**retval:None*author:Dazz*date:......
  • 删除链表中(有头节点)一个最小值节点
    删除链表中(有头节点)一个最小值节点/********************************************************************** name : deletelinkedlist* function:删除链表中(有头节点)一个最小值节点* argument:* @Head:链表结构体头头节点地址** retval :调用成功......
  • 删除链表中指定结点
    删除链表中指定结点/********************************************************name:DelTargetNode* function:删除链表中指定的结点*argument*@head:链表头结点的地址*@num:需要删除的第num个结点**retva......
  • 设计一个算法删除单链表L(有头节点)中的一个最小值结点
    数据结构链表笔试题:设计一个算法删除单链表L(有头节点)中的一个最小值结点。/****************************************************************** * filename : linkedlist.c* author : cnzycwp@126.com* data : 2024/04/22* function : 删除单链表中的一个最小......
  • 设计一个算法删除单链表L(有头结点)中的一个最小值结点
    设计一个算法删除单链表L(有头结点)中的一个最小值结点/********************************************************************* 函数名称: LList_delatemin* 函数功能:删除单链表L(有头结点)中的一个最小值结点* 函数参数:* @a:*L*@b:*返回......