分享|A与B链表的差集
20
发布于 江西

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;

}

评论 (0)