博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<每日 1 OJ> -LeetCode 21. 合并两个有序链表
阅读量:5293 次
发布时间:2019-06-14

本文共 1628 字,大约阅读时间需要 5 分钟。

题目:

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

示例:

输入:1->2->4, 1->3->4

输出:1->1->2->3->4->4

代码:

// 21. 合并两个有序链表.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include
#include
struct list{ int data; struct list *next;};//两个链表融合,插入排序函数void sort(struct list *l1,struct list *l2);//输出链表void output(struct list *head);//输入链表void input(struct list *head,int num); int main(){ int n; list *h1,*h2; //两个链表的头,下面四行初始化链表 h1=(struct list*)malloc(sizeof(struct list)); h2=(struct list*)malloc(sizeof(struct list)); h1->next=NULL; h2->next=NULL; //两个链表输入 printf("请输入第一个链表节点数:\n"); scanf("%d",&n); input(h1,n); printf("请输入第二个链表节点数:\n"); scanf("%d",&n); input(h2,n); //合并链表并排序 sort(h1,h2); //输出合并后的链表 output(h1);} void input(struct list *head,int num){ struct list *tmp; struct list *end; end=head; printf("请输入链表节点:\n"); for(int i=0;i!=num;i++) { tmp=(struct list *)malloc(sizeof(struct list)); scanf("%d",&tmp->data); end->next=tmp; tmp->next=NULL; end=tmp; }} void sort(struct list *l1,struct list *l2){ struct list *p1,*p2,*tmp; p1=l1; p2=l2->next; while(p1->next&&p2) { if(p1->next->data>p2->data) { tmp=p2->next; p2->next=p1->next; p1->next=p2; p2=tmp; } else p1=p1->next; } if(p2) p1->next=p2;} void output(struct list *head){ while(head->next) { printf(" %d ",head->next->data); head=head->next; }}

 

转载于:https://www.cnblogs.com/mhq-martin/p/11427369.html

你可能感兴趣的文章
内存数据保存到文件
查看>>
hive简介
查看>>
php使用位与运算符【&】位或运算符【|】实现权限管理
查看>>
(转载)Qt:习惯性Qt创建工程的步骤
查看>>
cron
查看>>
IIS上传大文件
查看>>
Neral的前言
查看>>
Centos7 安装高版本php
查看>>
RESTful API 设计指南
查看>>
python-高级编程-05-异步IO
查看>>
MySQL连接服务端的几种方式
查看>>
Floyd
查看>>
Uboot之tftp流程
查看>>
tensorflow的数据读取机制
查看>>
使用solid works 助力NBA | 操作案例
查看>>
2019年春节第一天上班
查看>>
task_statm反映虚拟内存,物理内存
查看>>
更改Visual Studio 2010的主题设置
查看>>
ecslipe cdt lib link
查看>>
Linux下的截图方法
查看>>