合并两个递增有序的单循环链表
*本题要求实现一个合并函数,实现对有序单循环链表tail1和tail2的合并,要求合并时实现去重操作,即合并后的链表中没有重复的元素,并且合并后的链表为递增有序链表。 *
1.创建结构体和宏定义类型名。代码如下
#include<stdio.h>
#include<stdlib.h>
typedef int DataType;
struct Node {
DataType data;
struct Node* next;
};
typedef struct Node *PNode;
typedef struct Node *LinkList;
2.创建尾节点,给尾节点的赋值-1.代码入下
```c
PNode createEmptyLinkedList()
{
PNode current;
current = (PNode)malloc(sizeof(Node));
current->next = NULL;
current->data = -1;
return current;
}
3.创建单循环链表,注意,尾节点并未插入链表中,tail->next指向最后一个节点,并不是tail指向最后一个节点。tail->data的值为-1。代码如下
PNode buildCircularLinkedList(int n, PNode tail)
{
PNode current=NULL, prev;
prev = tail