合并两个单链表

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝

但行前路,不负韶华!

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include"LinkList.h"

#define DataType int 

LNode* MergeList(LinkList A, LinkList B);

int main()
{
	LinkList A, B, C;
	LNode* p;
	InitList(&A);
	InitList(&B);
	DataType a[] = { 12,16,21,33,35,87,102 };
	DataType b[] = { 3,5,21,23,35,99,123 };
	int n;
	n = sizeof(a) / sizeof(a[0]);
	for (int i = 1; i <=n; i++)
	{
		InsertElem(A, i, a[i - 1]);
	}
	n = sizeof(b) / sizeof(b[0]);
	for (int i = 1; i <= n; i++)
	{
		InsertElem(B, i, b[i - 1]);
	}
	printf("链表A中共有%d个元素:\n", ListLength(A));
	p = A->next;
	for (int i = 1; i <= ListLength(A); i++)
	{
		printf("%d ", p->data);
		p = p->next;
	}
	printf("\n");
	printf("链表B中共有%d个元素:\n", ListLength(B));
	p = B->next;
	for (int i = 1; i <= ListLength(B); i++)
	{
		printf("%d ", p->data);
		p = p->next;
	}
 	printf("\n");
	C = MergeList(A, B);
	printf("合并的链表C中共有%d个元素:\n", ListLength(C));
	p = C->next;
	for (int i = 1; i <= ListLength(C); i++)
	{
		printf("%d ", p->data);	
		p = p->next;
	}
	printf("\n");
	return 0;
}

LNode* MergeList(LinkList A, LinkList B)
{
	LinkList C;
	InitList(&C);
	LNode* temp;
	A = A->next;
	B = B->next;
	while (A && B)
	{
		if (A->data < B->data)
		{	
			InsertElemF(C, A->data);
			A = A->next;
		}
		else if(A->data==B->data)
		{
			temp = B;
			B = B->next;
			free(temp);
		}
		else
		{	
			InsertElemF(C, B->data);
			B = B->next;
		}
	}
	while (A)
	{
		InsertElemF(C, A->data);
		A = A->next;
	}
	while (B)
	{
		InsertElemF(C, B->data);
		B = B->next;
	}
	return C;
}
相关推荐
ValhallaCoder1 小时前
hot100-二叉树I
数据结构·python·算法·二叉树
月挽清风2 小时前
代码随想录第十五天
数据结构·算法·leetcode
NEXT063 小时前
前端算法:从 O(n²) 到 O(n),列表转树的极致优化
前端·数据结构·算法
小妖6666 小时前
js 实现快速排序算法
数据结构·算法·排序算法
独好紫罗兰9 小时前
对python的再认识-基于数据结构进行-a003-列表-排序
开发语言·数据结构·python
wuhen_n9 小时前
JavaScript内置数据结构
开发语言·前端·javascript·数据结构
2401_841495649 小时前
【LeetCode刷题】二叉树的层序遍历
数据结构·python·算法·leetcode·二叉树··队列
独好紫罗兰9 小时前
对python的再认识-基于数据结构进行-a002-列表-列表推导式
开发语言·数据结构·python
2401_841495649 小时前
【LeetCode刷题】二叉树的直径
数据结构·python·算法·leetcode·二叉树··递归
数智工坊10 小时前
【数据结构-树与二叉树】4.5 线索二叉树
数据结构