合并两个排序的链表

将两个链表合并排序 这是方法一,将两个链表先相连在排序#include<stdio.h>#include<malloc.h>typedef struct StudentType{ int no; int sub; struct StudentType *next,*prior;}*Linklist,Link;Linklist Build(int n);void Paixu(Linklist h... 阅读详情

题目:输入两个递增排序的链表 合并这两个链表并使心里暗标中的结点仍然是按照递增的排序 


链表结点的定义如下:

struct ListNode
{
int m_nValue;
ListNode *m_pNext;
};






<pre name="code" class="cpp">#include <iostream>
using namespace std;

struct ListNode
{
int m_nValue;
ListNode *m_pNext;
};

ListNode *creatlist(int n)
{
	ListNode *p=(ListNode *)malloc(sizeof(ListNode));
	ListNode *s=p;
	int temp=0;
	if(n==0)
	{
		p=NULL;
		return p;
	}
	cout<<"输入第"<<0<<"个结点:";
    cin>>temp;
	p->m_nValue=temp;
	p->m_pNext=NULL;
	for(int i=1;i<n;i++)
	{
		ListNode *t=(ListNode *)malloc(sizeof(ListNode));
		cout<<"输入第"<<i<<"个结点:";
		cin>>temp;
		t->m_nValue=temp;
		t->m_pNext=NULL;
		p->m_pNext=t;
		p=t;
	}
	p->m_pNext=NULL;
	return s;
}

ListNode *merge(ListNode *L1,ListNode *L2)
{
	ListNode *s=L1;
	ListNode *t=L2;
	ListNode *m=L1;
	ListNode *n=L2;

	while(s!=NULL && t!=NULL)
	{
		if(s->m_nValue>t->m_nValue)
		{
			m->m_pNext=t;
			n=t->m_pNext;
			t->m_pNext=s;
			m=t;
			t=n;
		}
		else
		{
			m=s;
			s=s->m_pNext;
		}
	}
	if(s==NULL)
			m->m_pNext=s;
	return L1;
}

ListNode *merger(ListNode *L1,ListNode *L2)
{//递归~~~~
	if(L1==NULL)
		return L2;
	else
		if(L2==NULL)
			return L1;
	ListNode *p;
	if(L1->m_nValue < L2->m_nValue)
	{
		p=L1;
		p->m_pNext=merger(L1->m_pNext,L2);
	}
	else
	{
		p=L2;
		p->m_pNext=merger(L1,L2->m_pNext);
	}
	return p;
}
int main()
{
	cout<<"输入链表1 结点个数:";
	int n1;
	cin>>n1;
	ListNode *p1=creatlist(n1);
	cout<<"输入链表2 结点个数:";
	int n2;
	cin>>n2;
	ListNode *p2=creatlist(n2);

	cout<<"================"<<endl;
	ListNode *s;
	if(p2==NULL && p2==NULL)
		return -1;
	if(p1==NULL)
		s=p2;
	if(p2==NULL)
		s=p1;
	if(p1->m_nValue < p2->m_nValue)
		s=merge(p1,p2);
	else
		s=merge(p2,p1);

	while(s!=NULL)
	{
		cout<<s->m_nValue<<' ';
		s=s->m_pNext;
	}
	return 0;
}




elementui中el-select和el-tree实现下拉树形多选功能 阅读详情

相关推荐

泛微ecology9二次开发-附件上传接口实战:从表单创建到数据库存储解析

本文详细解析了泛微ecology9二次开发中的附件上传接口实战,从测试环境搭建、数据库表结构解析到接口代码实现,提供了全面的开发指南。重点介绍了文件上传的核心逻辑、常见问题排查及高级应用场景,帮助开发者高效实现附件上传功能并优化系统性能。

weixin_30836759的博客 477

165. 合并两个排序链表

165. 合并两个排序链表 将两个排序链表合并为一个新的排序链表 样例 样例 1: 输入: list1 = null, list2 = 0->3->3->null 输出: 0->3->3->null 样例2: 输入: list1 = 1->3->8->11->15->null, list2 = 2->null 输出: 1->2->3->8->11->15-&g...

yinhua405的博客 166

将pytroch模型转为paddlelite模型并集成到android程序中

在android中使用paddlelite加载yolov5模型识别opencv读取的摄像头信息

qq_56460466的博客 1555

合并两个排序的链表——js

合并两个排序的链表 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路 新建一个链表,然后比较两个链表中的元素值,把较小的那个链到新链表中,由于两个输入链表的长度可能不同,所以最终会有一个链表先完成插入所有元素,则直接另一个未完成的链表直接链入新链表的末尾。 重点抓住这两个链表都是单挑递增的,因此我们只需要不断地比较他们的头结点就行,明显这是个重复的...

qq_40608516的博客 690

Amber分子动力学模拟:蛋白结构准备全流程与关键注意事项

分子动力学模拟是研究蛋白结构、配体结合与构象变化的重要计算手段,其结果的可靠性高度依赖初始结构的质量。在Amber模拟体系中,结构准备是决定后续计算成败的“一票否决”环节,任何缺失残基、错误质子化状态或未处理的二硫键都可能让长时程模拟失去意义。从PDB原始文件出发,需依次完成结构检查与清洗、残基命名统一、配体参数化、金属离子建模、加氢及质子化状态判断,最后通过tleap构建力场、溶剂盒子与离子环境。这一过程看似琐碎,却直接决定了蛋白在模拟中的物理合理性。无论是解析催化机制、评估药物结合亲和力,还是探索构象变

weixin_31714129的博客 239

windows 下AD9361的 no-os master 工程搭建

参考网站: https://wiki.analog.com/resources/fpga/docs/build#windows_environment_setup https://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/software/no-os-setup 参考博客: https://blog.youkuaiyun.com...

Bronceyang的博客 7294

14 合并链表: 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。

一、题目 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。 二、解题思路 Step1.定义一个指向新链表的指针,暂且让它指向NULL; Step2.比较两个链表的头结点,让较小的头结点作为新链表的头结点; Step3.有两种方法。 ①递归比较两个链表的其余节点,让较小的节点作为上一个新节点的后一个节点; ②循环比较两个链表的其余节点,让较小的节点作为上一个新节点的后一...

皮卡丘的博客 2623

vue3的面试题

vue3的面试题

jiang7701037的博客 6267

合并两个排序链表

将两个排序链表合并为一个新的排序链表 样例 样例 1: 输入: list1 = null, list2 = 0->3->3->null 输出: 0->3->3->null 样例2: 输入: list1 = 1->3->8->11->15->null, list2 = 2->null 输出: 1->2...

weixin_41791402的博客 274

llama.cpp部署大模型

llama.cpp如何部署大模型

Eddy的博客 979

黑猫带你学UFS协议第12篇:UFS标志(Flags)和属性(Atrributes)详解

UFS中的标志其实就是一些开关,布尔型,非0即1,打开或者关闭。这些标志可以用来使能或者禁止UFS设备的一些功能、模式或者状态。 简单来说,flag和attribute、discriptor一样,都是ufs的寄存器罢了。只不过spec将这些寄存器分类了,分成这三种大的类型了而已。 标志可以被清除、复位、设置、触发、读。 主机也是通过设备管理器的Query Request UPIU来读取或者写标志。

黑猫奥利奥的博客 2083

合并两个排序了的链表

合并

大冰的小屋 974

chromium通信系统-ipcz系统(二)-ipcz系统代码实现-同Node通信

在chromium通信系统-mojo系统(一)-ipcz系统基本概念一文中我们介绍了ipcz的基本概念。 本章我们来通过代码分析它的实现。 handle系统 为了不对上层api暴露太多细节,实现解耦,也方便于传输,ipcz系统使用handle表示一个对象,handle类似于文件描述符,用IpczHandle类型表示ipcz系统内的一个对象。一个可以用IpczHandle 句柄表示的对象必须是APIObject子类。APIObject数据结构如下 class APIObject : public RefCou

woai110120130的专栏 1775

链表:合并两个排序的链表

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 代码实现如下: class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode dum=new ListNode(0); ListNode

aishenla的博客 198

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

lintcode——合并两个排序链表

1.题目      将两个排序链表合并为一个新的排序链表      给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。 2.思路      新建一个链表,对给定的两个链表从头遍历并比较大小,每次将较小( 3.代码 /**  * Definition of ListNode  * class ListNode

LFJ17的博客 980

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【合并两个排序的链表】

输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。1. 如果有一个链表为空,返回另一个链表 2. 如果pHead1 节点值比小pHead2,下一个节点应该是 pHead1,应该return pHead1,在return之前,指定pHead1的下一个节点应该是pHead1.next和pHead2俩链表的合并后的头结点 3. 如果pHead1 节点值比pHead2大,下一个节点应该是pHead2,应该return pHead2,在return之前,指定pHead2的下一个

Coder_ljw的博客 351

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【链表】合并两个排序的链表

输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: 0≤n≤1000 ,−1000≤节点值≤1000要求:空间复杂度 O(1) ,时间复杂度 O(n)如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:输入: {1,3,5},{2,4,6}返回值:{1,2,3,4,5,6}输入:{},{}返回值:{}输入:{-1,2,4},{1,3,4}

wamp0001的博客 333
上一篇: 反转链表
下一篇: 树的子结构
Fivesplus
博客等级 码龄12年 1粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值