实验11-2-5 链表拼接(PTA)

题目:

本题要求实现一个合并两个有序链表的简单函数。链表结点定义如下:

struct ListNode {int data;struct ListNode *next;
};

函数接口定义:

struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2);

其中list1list2是用户传入的两个按data升序链接的链表的头指针;函数mergelists将两个链表合并成一个按data升序链接的链表,并返回结果链表的头指针。

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>struct ListNode {int data;struct ListNode *next;
};struct ListNode *createlist(); /*裁判实现,细节不表*/
struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2);
void printlist( struct ListNode *head )
{struct ListNode *p = head;while (p) {printf("%d ", p->data);p = p->next;}printf("\n");
}int main()
{struct ListNode  *list1, *list2;list1 = createlist();list2 = createlist();list1 = mergelists(list1, list2);printlist(list1);return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

1 3 5 7 -1
2 4 6 -1

输出样例:

1 2 3 4 5 6 7 

解:

struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2){if(list1==NULL){//如果有一个链表为空,直接返回另一个链表return list2;}if(list2==NULL){return list1;}struct ListNode *p,*head=NULL,*s;//s为新的合并链表while(list1!=NULL && list2!=NULL){p=(struct ListNode*)malloc(sizeof(struct ListNode));//新建一个结点pif(list1->data > list2->data){//p为较小的数p->data = list2->data;p->next = NULL;list2=list2->next;}else{p->data = list1->data;p->next = NULL;list1=list1->next;}if(head==NULL){//处理第一个结点head=p;}else{s->next=p;//链接上p结点}s=p;}if(list1==NULL){//当一个链表已经遍历完,直接链接上另一个链表s->next=list2;}else if(list2==NULL){s->next=list1;}return head;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PyTorch】基础学习:一文详细介绍 load_state_dict() 的用法和应用

【PyTorch】基础学习&#xff1a;一文详细介绍 load_state_dict() 的用法和应用 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#…

Java12~14 switch语法

JDK8以后的语法没学习了&#xff0c;现在时代发展这么快&#xff0c;所以得加紧时间学习了。JDK12只有一个特性就是switch语法&#xff0c;算是比较容易学习的一个版本吧。总体来说就是三部分内容。具体内容可以看JEP-325的内容。 箭头语法 每个case可以放箭头了。以下是一个例…

【目录】Java程序设计课程学习导航(更新中)

学习时间表 周次内容学习时长建议第一周 【第一章-1】JDK下载与配置电脑的环境变量&#xff0c;并在电脑上运行第一个java程序 2h【第一章-2】IDEA开发环境的安装与编写第一个程序 2h 第二周【第二章-1】Java编程基础——变量与常量1h【第二章-2】Java编程基础…

【算法与数据结构】堆排序TOP-K问题

文章目录 &#x1f4dd;堆排序&#x1f320; TOP-K问题&#x1f320;造数据&#x1f309;topk找最大 &#x1f6a9;总结 &#x1f4dd;堆排序 堆排序即利用堆的思想来进行排序&#xff0c;总共分为两个步骤&#xff1a; 建堆 升序&#xff1a;建大堆 降序&#xff1a;建小堆利…

R语言深度学习-6-模型优化与调试

本教程参考《RDeepLearningEssential》 这是本专栏的最后一篇文章&#xff0c;一路走来&#xff0c;大家应该都可以独立的建立一个自己的神经网络进行特征学习和预测了吧&#xff01; 6.1 缺失值处理 在我们使用大量数据进行建模的时候&#xff0c;缺失值对模型表现的影响非常…

定位及解决OOM

一、定义 内存溢出&#xff1a;OutOfMemoryError&#xff0c;是指因内存不够&#xff0c;导致操作新对象没有剩余空间。会导致频繁fullgc出现STW从而导致性能下降。 内存泄漏&#xff1a;指用malloc或new申请了一块内存&#xff0c;但是没有通过free或delete将内存释放&#…

30.HarmonyOS App(JAVA)鸿蒙系统app多线程任务分发器

HarmonyOS App(JAVA)多线程任务分发器 打印时间&#xff0c;记录到编辑框textfield信息显示 同步分发&#xff0c;异步分发&#xff0c;异步延迟分发&#xff0c;分组任务分发&#xff0c;屏蔽任务分发&#xff0c;多次任务分发 参考代码注释 场景介绍 如果应用的业务逻辑比…

LLM之Alpaca:深入了解大模型Alpaca

博客首发地址&#xff1a;LLM之Alpaca&#xff1a;深入了解大模型Alpaca - 知乎 官方链接&#xff1a;https://crfm.stanford.edu/2023/03/13/alpaca.html官方Git&#xff1a;tatsu-lab/stanford_alpaca官方模型&#xff1a;https://huggingface.co/tatsu-lab/alpaca-7b-wdiff…

React高阶组件详解

文章目录 高阶组件是什么&#xff1f;认识高阶组件编写高阶组件高阶组件实践推荐文章 高阶组件是什么&#xff1f; 高阶组件&#xff08;HOC&#xff09;是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分&#xff0c;它是一种基于 React 的组合特性…

Android Studio 打包 Maker MV apk 详细步骤

一.使用RPG Make MV 部署项目&#xff0c;获取项目文件夹 这步基本都不会有问题&#xff1a; 二.安装Android Studio 安装过程参考教材就行了&#xff1a; https://blog.csdn.net/m0_62491877/article/details/126832118 但是有的版本面板没有Android的选项&#xff08;勾…

python --阿里云(智能媒体管理/视频点播)

智能媒体服务获取token # alibabacloud_imm202009304.1.0 class Sample(object):智能媒体服务def __init__(self):self.access_key 111self.key_secret 222def weboffice_permission(self):return imm_20200930_models.WebofficePermission(renameFalse,readonlyTrue,histor…

在Linux/Ubuntu/Debian上创建指向文件夹或文件的快捷方式

使用带有“-s”选项的“ln”命令&#xff1a; ln -s 命令创建一个符号链接。 这是完整的语法&#xff1a; ln -s <target> <link_name><target>&#xff1a;这是你要链接到的文件或目录的路径。<link_name>&#xff1a;这是你要创建的符号链接的名称…

关于安卓文件夹压缩和解压(一)zip处理

背景 把文件压里头 把文件夹压里头 相关参考 我之前的一个文章&#xff0c;文件递归复制思路link 思路 如果把单单一个文件压缩&#xff0c;那么恭喜你&#xff0c;不用看这个文章了&#xff0c;因为百度一搜就有不错的答案。 本文主要介绍&#xff0c;如果把整个文件夹压…

描述CSS选择器及其优先级规则

一․描述一下CSS选择器及其优先级规则 CSS选择器是用于指定CSS样式应应用于哪些HTML元素的模式。通过选择器&#xff0c;我们可以定位到特定的元素或元素组&#xff0c;并为它们应用样式。CSS选择器有多种类型&#xff0c;每种类型都有其特定的用途和语法。 以下是几种常见的…

Python数据分析与可视化笔记一 机器学习概述

机器学习是一种从数据当中发现复杂规律&#xff0c;并且利用规律对未来时刻、未知状况进行预测和判定的方法&#xff0c;是当下被认为最有可能实现人工智能的方法之一。 所有数据的集合称为数据集(dataset)&#xff0c;其中每条记录是关于一个事件或对象的描述&#xff0c;称为…

龙芯新世界系统(安同AOCS OS)安装Cinnamon桌面最新版6.0.4

龙芯的新世界系统安同AOCS OS是十分优秀的操作系统&#xff0c;处于纯社区方式运行&#xff0c;她的各组件更新得很及时&#xff0c;很多组件都处于最新的状态&#xff0c;给我们安装使用最新的开源软件提供了很好的基础。由于本人一直使用Cinnamon桌面环境&#xff0c;各方面都…

LM2903BIDR比较器芯片中文资料规格书PDF数据手册参数引脚图功能封装尺寸图

产品概述&#xff1a; M393B 和 LM2903B 器件是业界通用 LM393 和 LM2903 比较器系列的下一代版本。下一代 B 版本比较器具有更低的失调电压、更高的电源电压能力、更低的电源电流、更低的输入偏置电流和更低的传播延迟&#xff0c;并通过专用 ESD 钳位提高了 2kV ESD 性能和输…

【CenterFusion】模型的创建、导入、保存CenterFusion/src/lib/model/model.py

文件内容&#xff1a;CenterFusion/src/lib/model/model.py 文件作用&#xff1a;模型的创建、导入、保存 model.py 具体内容如下&#xff1a; from __future__ import absolute_import from __future__ import division from __future__ import print_functionimport torchv…

【教学类-44-07】20240318 0-9数字描字帖 A4横版整页(宋体、黑体、文鼎虚线体、print dashed 德彪行书行楷)

背景需求: 前文制作了三种字体的A4横版数字描字帖 【教学类-44-06】20240318 0-9数字描字帖 A4横版整页&#xff08;宋体、黑体、文鼎虚线体&#xff09;-CSDN博客【教学类-44-06】20240318 0-9数字描字帖 A4横版整页&#xff08;宋体、黑体、文鼎虚线体&#xff09;https://…

将VSCode添加至右键的菜单栏

懒得bb&#xff0c;直接转发别人的博客&#xff0c;链接 但是我在win11上面弄了之后&#xff0c;除了文件夹其他格式都生效了&#xff0c;只需要在这个路径HKEY_CLASSES_ROOT\Directory\shell重复上面的操作&#xff0c;看Directory就知道是文件夹