Codeup——606 | 问题 C: 最快合并链表(线性表)

题目描述

知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。

输入

m=5

3 6 1 3 5

n=4.

7 10 8 4

输出

3 6 1 3 5 7 10 8 4

样例输入

7
3 5 1 3 4 6 0
5
5 4 8 9 5

样例输出

3 5 1 3 4 6 0 5 4 8 9 5

#include 
#include 
using namespace std;

struct node{
	int num;
	struct node *next;
};

int main()
{
	struct node *head,*pre,*p;
	int i,m,n;
	cin >>m;
	head=NULL;
	for(i=0;i<m;i++){
		p=new node;
		cin >>p->num;
		p->next=NULL;
		if(!head) head=p;
		else pre->next=p;
		pre=p;
	}
	cin >>n;
	for(i=0;i<n;i++){
		p=new node;
		cin >>p->num;
		p->next=NULL;
		pre->next=p;
		pre=p;
	}
	p=head;
	cout <<p->num;
	p=p->next;
	while(p){
		cout <<" "<<p->num;
		p=p->next;
	}
	return 0;
}

你可能感兴趣的:(Codeup,链表,算法,数据结构,单链表,codeup)