struct ListNode* front;
struct ListNode* middle;
struct ListNode* last;
struct ListNode* p;
struct ListNode* s;
struct ListNode* q;
struct ListNode* new; //121
front=head;
new=(struct ListNode*)malloc(sizeof(struct ListNode));
p=new;
q=new;
if(front==NULL){
return true;
}
while(front){
s=(struct ListNode*)malloc(sizeof(struct ListNode));
s->val=front->val;
p->next=s;
p=s;
front=front->next;
}
front=head;
p->next=NULL;
q=q->next;
if(front->next){
middle=front->next;
} else{
return true;
}
if(middle->next){
last=middle->next;
} else{
if(front->val==middle->val){
return true;
}else{
return false;
}
}
while(last->next){
middle->next=front;
front=middle;
middle=last;
last=last->next;
}
middle->next=front;
last->next=middle;
while(last){
if(q->val==last->val){
q=q->next;
last=last->next;
}else{
return false;
}
}
return true;