#include<iostream>
using namespace std;
typedef struct Node
{
int value;
struct Node* next;
} *List;
void print(List list)
{
int i = 0;
while(list != NULL)
{
cout << list->value << " ";
list = list->next;
if(++i % 10 == 0)
cout << endl;
}
cout << endl;
}
void merge(List list1, List list2)
{
List p1 = list1, p2 = list2;
while(p1 != NULL && p2 != NULL)
{
}
}
int main()
{
List list1 = NULL, list2 = NULL;
for(int i = 100; i > 0; i -= 2)
{
Node *node = new Node;
node->next = list1;
node->value = i;
list1 = node;
}
for(int i = 99; i > 0; i -= 2)
{
Node *node = new Node;
node->next = list2;
node->value = i;
list2 = node;
}
print(list1);
print(list2);
//归并
List s1 = list1, s2 = list2, p1 = list1->next, p2 = list2->next;
while(p1 != NULL && p2 != NULL)
{
s1->next = s2;
s2->next = p1;
s1 = p1;
p1 = p1->next;
s2 = p2;
p2 = p2->next;
}
if(p1 == NULL)
s1->next = s2;
else if(p2 == NULL)
s2->next = s1;
print(list1);
}
不使用额外空间,将 A,B两链表的元素交叉归并
最新推荐文章于 2018-12-25 18:35:44 发布