bool isPail(struct ListNode* head ) { // write code here if(head==NULL || head->next==NULL) return true; struct ListNode *p=head,*q,*head2; head2=(struct ListNode*)malloc(sizeof(struct ListNode)); head2->next=NULL; while(p!=NULL) { q=(struct ListNode*)malloc(sizeof(struct ListNode)); q->val=p->val; q->next=head2->next; head2->next=q; p=p->next; } p=head; while(p!=NULL) { if(p->val!=q->val) return false; p=p->next; q=q->next; } return true; }