删除单链表L中一个最小值结点的高校算法(假设最小值结点是唯一的)
//删除单链表L中一个最小值结点的高校算法(假设最小值结点是唯一的) #include <iostream> #include<stdio.h> #include<string.h> using namespace std; typedef struct LNode { int data; struct LNode *next; } LNode,*LinkList; LinkList Delete_Min(LinkList &L) { LNode *pre=L,*p= pre->next; //p 为工作指针,pre指向其前驱 LNode *minpre=pre,*minp=p; //保存最小值结点及其前驱 while(p!=NULL) { if(p->data<minp->data) { minp=p; minpre=pre; } pre=p; //继续扫描下一个结点 p=p->next; //删除最小值结点 } minpre->next=minp->next; //删除最小值结点 free(minp); return L; } int main() { return 0; }