Why It is partially correct?


#1

int size(ListNode temp){
int c=0;
while(temp!=NULL){
c+=1;
temp=temp->next;
}
return c;
}
ListNode
Solution::solve(ListNode* A) {
if(A==NULL || A->next==NULL || A->next->next==NULL){
return A;
}
ListNode *temp=A,*temp1=A->next,*prev;
int n=size(A);
if(n%2==0){

    while(temp->next!=NULL){
        prev=temp;
       temp=temp->next;
    }
}
else{
    while(temp->next->next!=NULL){
        prev=temp;
       temp=temp->next;
    }
}
ListNode *p=temp->next;
temp->next=temp1->next;
temp1->next=p;
prev->next=temp1;
A->next=temp;
 A->next=temp;
return A;

}