合并两个非递减有序的单循环链表
本题要求实现一个合并函数,实现对有序单循环链表tail1和tail2的合并,要求合并时实现去重操作,即合并后的链表中没有重复的元素,并且合并后的链表为递增有序链表。
函数接口定义:
PNode mergeNDeduplicateList(PNode tail1, PNode tail2);
其中tail1是待合并的第一个有序单循环链表,采用的尾指针表示方法;tail2是待合并的第二个有序单循环链表,采用的尾指针表示方法;裁判测试程序样例:
#include<stdio.h>
#include<stdlib.h>
typedef int DataType;
struct Node
{
DataType data;
struct Node * next;
};
typedef struct Node Node;
typedef struct Node *PNode;
typedef struct Node *LinkList;
PNode createEmptyLinkedList()
{
PNode current;
current = (PNode)malloc(sizeof(Node));
current->next = NULL;
current->data = -1;
return current;
}
PNode buildCircularLinkedList(int n, PNode tail)
{
PNode current=NULL, prev;
prev = tail;
for (int i