18.有两个循环单链表,链表头指针分别为h1和h2,
编写一个函数将链表h2连接到链表h1之后,要求连接后的链表仍保持循环链表形式
struct Link{
int data;
struct Link *next;
struct Link *pre;
};
#define_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void isSymmetry(Link *h){
struct Link *pre=h->next,*next=h->next;
while(pre!=next&&pre->pre!=next){
//此时存在两种情况,奇数个节点和偶数个节点都要考虑
if(pre->data!=next->data){
printf("该循环双链表不对称");
break;
}
else{
pre=pre->pre;
next=next->next;
}
}
if(pre==next||pre->pre==next){
printf("该循环双链表对称:");
}
}
int main(){
struct Link*head;
Link *createDouLoopLink();
head=createDouLoopLink();
isSymmetry(head);
return 0;
}