有序单链表的合并

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct LinkNode {
	ElemType data;
	LinkNode* next;
}LinkNode,*LinkList;
void creatLinkList(LinkList& L, int m) {
	L = (LinkNode*)malloc(sizeof(LinkNode));
	L->next = NULL;
	int num;
	for (int i = 0; i < m; i++) {
		scanf("%d", &num);
		LinkNode* pnode = (LinkNode*)malloc(sizeof(LinkNode));
		pnode->data = num;
		pnode->next = L->next;
		L->next = pnode;
	}
}
void printLinkList(LinkList L) {
	LinkNode* pcur = L->next;
	while (pcur != NULL) {
		printf("%d ", pcur->data);
		pcur = pcur->next;
	}
}
void insert(LinkNode*& ptail, LinkNode* pnode) {
	if (ptail->data == pnode->data) {
		free(pnode);
	}
	else {
		pnode->next = ptail->next;
		ptail->next = pnode;
		ptail = pnode;
	}
}
LinkList mergeTwoList(LinkList& La, LinkList& Lb) {
	LinkNode* pcurA = La->next;
	LinkNode* pcurB = Lb->next;
	LinkList Lc = La;
	Lc->next = NULL;
	LinkNode* ptail = Lc;
	free(Lb);
	while (pcurA != NULL && pcurB != NULL) {
		if (pcurA->data < pcurB->data) {
			LinkNode* pnode = pcurA;
			pcurA = pcurA->next;
			insert(ptail, pnode);
		}
		else {
			LinkNode* pnode = pcurB;
			pcurB = pcurB->next;
			insert(ptail, pnode);
		}
	}
	if (pcurA != NULL) {
		ptail->next = pcurA;
	}
	if (pcurB != NULL) {
		ptail->next = pcurB;
	}
	return Lc;
}
int main() {
	LinkList La, Lb;
	int m, n;
	scanf("%d", &m);
	creatLinkList(La, m);
	scanf("%d", &n);
	creatLinkList(Lb, n);
	LinkList Lc=mergeTwoList(La, Lb);
	/*printLinkList(La);
	printf("\n");
	printLinkList(Lb);*/
	printLinkList(Lc);
	return 0;
}
相关推荐
To_OC4 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode
炸膛坦客5 小时前
单片机/C/C++八股:(二十六)IIC 专题(I²C)---- 上集
c语言·c++·单片机
旖-旎5 小时前
LeetCode 518:零钱兑换||(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题
To_OC6 小时前
LC 42 接雨水:暴力超时卡半天?前后缀数组一用就通了
javascript·算法·leetcode
delishcomcn6 小时前
AI视觉识别+分切算法:电化铝缺陷检测与裁切一体化解锁
人工智能·算法
触底反弹7 小时前
深入理解大模型采样:Temperature、Top-K、Top-P 的原理与实战
人工智能·算法·面试
雪碧聊技术7 小时前
力扣 LCR 091. 粉刷房子 —— 动态规划入门详解
算法·动态规划
延凡科技9 小时前
多场景落地复盘:端边云架构无人机智能巡检系统设计与实践
大数据·数据结构·人工智能·科技·架构·无人机·能源
CV-Climber10 小时前
检索技术的实际应用
人工智能·算法