//寻找带有头节点单链表中最小值
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode {
int data;
struct LNode* next;
}Node,*LinkList;
//查找最小值
Node* Search(LinkList L){
if(L==NULL || L->next == NULL) return NULL;
else{
LinkList p,minp;
p = L->next;
minp = L->next;
while(p != NULL){
if(p -> data < minp -> data){
minp->data = p->data;
minp->next = minp->next;
}
p = p -> next;
}
return minp;
}
}
//创建节点并插入
void CreateNode (LinkList* L){
Node* newNode = (Node*) malloc(sizeof(Node));
int newdata;
//输入节点数据
scanf("%d",&newdata);
newNode -> data = newdata;
newNode -> next = NULL;
newNode -> next = (*L) -> next;
(*L) -> next = newNode;
}
int main(){
LinkList L= (Node*) malloc(sizeof(Node));
L->next=NULL;
CreateNode(&L);
CreateNode(&L);
CreateNode(&L);
CreateNode(&L);
CreateNode(&L);
printf("%d",Search(L)->data);
}