typedef struct ListNode{
int val;
struct ListNode*next;
}ListNode,*pNode;
pNode diffsetA(pNode list1,pNode list2){
ListNode movp=list1;
ListNode p1=list1->next;
ListNode p2=list2->next;
ListNode temp=p2;
while(p1!=NULL&&p2!=NULL){
if(p1->val<p2->val){
movp->next=p1;
movp=movp->next;
p1=p1->next;
}
else if(p2->val<p1->val){
list2->next=p2->next;
temp=p2;
p2=p2->next;
free(temp);
}
else{
temp=p1;
movp->next=p1->next;
p1=p1->next;
free(temp);
list2->next=p2->next;
temp=p2;
p2=p2->next;
free(temp);
}
}
movp->next=p1?p1:NULL;
return list1;
}