c语言求两个有序表合成差集代码,选出两个有序链表中的(差集)不相等元素(C++)...

#include

using namespace std;

struct ListNode {

int val;

ListNode *next;

ListNode(int x): val(x), next(NULL){}

};

void My_Printf(ListNode* L)

{

cout << "List is: ";

ListNode* cur = L;

while (cur)

{

cout << cur->val << "->";

cur = cur->next;

}

cout << endl;

}

ListNode* Difference(ListNode* head1, ListNode* head2)

{

ListNode* dummyhead = new ListNode(0);

ListNode* cur = dummyhead;

cur->next = head1;

while (head1 && head2)

{

if (head1->val == head2->val)

{

cur->next = head1->next;

delete head1;

head1 = cur->next;

head2 = head2->next;

}

else if (head1->val < head2->val)

{

cur->next = head1;

head1 = head1->next;

cur = cur->next;

}

else

{

head2 = head2->next;

}

}

if (head1)

{

cur->next = head1;

}

return dummyhead->next;

}

int main()

{

ListNode* n1 = new ListNode(5);

ListNode* n2 = new ListNode(15);

ListNode* n3 = new ListNode(20);

ListNode* n4 = new ListNode(35);

ListNode* n5 = new ListNode(45);

ListNode* n6 = new ListNode(50);

ListNode* m1 = new ListNode(15);

ListNode* m2 = new ListNode(35);

ListNode* m3 = new ListNode(50);

ListNode* m4 = new ListNode(55);

n1->next = n2;

n2->next = n3;

n3->next = n4;

n4->next = n5;

n5->next = n6;

m1->next = m2;

m2->next = m3;

m3->next = m4;

My_Printf(n1);

My_Printf(m1);

ListNode* node = Difference(n1, m1);

My_Printf(node);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值