【问题描述】
两个非降序链表的并集,例如将链表1->2->3 和 2->3->5 并为 1->2->3->5,只能输出结果,不能修改两个链表的数据。
【输入形式】
第一行首先是数据的个数,然后是第一个链表的各结点值,以空格分隔。
第二行首先也是数据的个数,然后是第二个链表的各结点值,以空格分隔。
【输出形式】
合并好的链表,以非降序排列,值与值之间以空格分隔。
【样例输入】
4 4 7 10 34
7 1 4 6 29 34 34 52
【样例输出】
1 4 6 7 10 29 34 52
#include<iostream>
using namespace std;
struct Node
{
int data;
Node *next;
};
Node *GetNode()
{
Node *item=new Node;
if(item)
{
item->next=NULL;
item->data=0.0;
}
return item;
}
void AddToEnd(Node *temp,Node *&head)//始终把head接在temp的前面
{
if(!head)
head=temp;
else
{
Node *p;
for(p=head;p->next;p=p->next);//此处是分号
p->next=temp;
}
temp->next=NULL;
}
void Insert(Node *&newHead,Node *t)
{
if(!newHead)
{
newHead=t;
t->next