Node *Merge(Node *head1,Node *head2) { Node *p1 = NULL; Node *p2 = NULL; Node *head = NULL; //找出两个链表中第一个结点较小的结点,head记录较小结点的头结点 if(head1->next->data < head2->next->data) { head = head1; p1 = head1->next; p2 = head2->next; } else { head = head2; p2 = head2->next; p1 = head1->next; } Node *pcur = head; //在两个链表中遍历比较,将值较小的结点链接到pcur结点后 while(p1 != NULL && p2 != NULL) { if(p1->data <= p2->data) { pcur->next = p1; pcur = p1; p1 = p1->next; } else { pcur->next = p2; pcur = p2; p2 = p2->next; } } //将p1或p2剩余的结点链到pcur之后,完成整个合并的过程 if(p1 != NULL) pcur->next = p1; if(p2 != NULL) pcur->next = p2; return head; }
差集:不同大小:每次输出最小的元素 相同大小:都不输出
2579----579--79---9
578------578--78---8
交集:相等才输出
交集:相等才输出