6-5 有序单链表去重 (10分)
根据程序提供的LNode结构,删除以h为头结点的有序单链表中的重复元素,并返回删除的元素构成的新单链表(保持原来表中的相对顺序)。
函数接口定义:
LNode* DelR(LNode *h);
其中`h`为无附加表头的单链表的首结点地址。要求函数删除单链表中的重复元素,并将删除的元素构成新链表返回(当然是表头结点地址)。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include "stdio.h"
#include "stdlib.h"
typedef int dataType;
typedef struct node{
dataType data;
struct node *next;
} LNode;
LNode* _LNodeN(int n);//测试函数提供的:初始化无附加表头的单链表的函数
void outputL(LNode *h);//测试函数提供的:输出无附加表头的单链表的函数
LNode* DelR(LNode *h);//删除以h为首结点地址的链表中的重复元素,并将删除的元素构成新链表返回
int main(){
int n;scanf("%d",&n);
LNode *H=_LNodeN(n);
outputL(H);
LNode *DH=DelR(H);
outputL(H);outputL(DH);
return 0;
}
/* 请在这里填写答案 */
输入样例:
一个整数:随机种子,用来产生待