求解无序单链表去重 (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;}/* 请在这里填写答案 */输入样例:一个整数:随机种子99输出样例:共三行,分别是原单链表,去重后的单链表,删除的元素构成的链表。{15,15,13,11,11,14,13}{15,13,11,14}{15,13,11}