题目:

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

示例:

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

代码:

// 21. 合并两个有序链表.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h" #include<stdio.h>
#include<stdlib.h>
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=;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;
}
}

<每日 1 OJ> -LeetCode 21. 合并两个有序链表的更多相关文章

  1. LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)

    21. 合并两个有序链表 21. Merge Two Sorted Lists 题目描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. LeetCode ...

  2. Java实现 LeetCode 21 合并两个有序链表

    21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1 ...

  3. 力扣Leetcode 21. 合并两个有序链表

    合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1-> ...

  4. [LeetCode]21. 合并两个有序链表(递归)

    题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-> ...

  5. [LeetCode] 21. 合并两个有序链表

    题目链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/ 题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定 ...

  6. LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)

    题目描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-& ...

  7. LeetCode 21. 合并两个有序链表(Python)

    题目: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-&g ...

  8. LeetCode 21 ——合并两个有序链表

    1. 题目 2. 解答 新建一个带有哨兵结点的链表,依次比较两个有序链表的结点值,将较小值的结点插入到新链表后面.直到其中一个比较完毕,将另一个链表剩余的结点全部放到新链表最后面即可.最后,可以删除哨 ...

  9. [LeetCode]21.合并两个有序链表(Java)

    原题地址: merge-two-sorted-lists 题目描述: 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例 1: 输入:l1 = [1 ...

随机推荐

  1. Spring Cloud的常规组件和简单实战(一)

    最近一段时间在学习Spring Cloud,从Eureka到Hystrix,常用的配置和方法都有涉及一些,以此笔记来记录一下学习到的东西,也分享一下.内容以实战为起点,主要以介绍常规用法为主,最后也会 ...

  2. Win10系统配置Java环境变量

    Win10系统配置Java环境变量 电脑重新装了个系统,又要重新配置JDK环境变量,这里做个记录. 安装JDK后在cmd里运行java会显示找不到指令,这种就是需要添加java的环境变量. 这里我记录 ...

  3. Docker 0x01:Docker Container容器技术

    目录 Docker Container容器技术 一句话回答什么是容器? 为什么要有容器? 容器技术的影响 容器技术浅谈原理,怎么实现的?为什么能够这样轻量级标准化 难点 容器的标准 花边 Docker ...

  4. postgresql源代码结构

    转载学习: 德哥培训! 源码下载: https://www.postgresql.org/ftp/source/ 1.postgressql源码目录结构 2.src目录结构

  5. spark操作总结

    一.sparkContext与sparkSession区别 任何Spark程序都是SparkContext开始的,SparkContext的初始化需要一个SparkConf对象,SparkConf包含 ...

  6. Python 字符集

    什么是字符? 1.在Python中,字符串中的内容都是字符. 2.什么是字符编码(encode)和字符集(charset)? 计算机只能识别数值,而字符不能识别,为了让计算机能处理字符,必须将字符和数 ...

  7. Kali -关闭防火墙

    kali关闭防火墙前需要安装ufw 安装 apt-get install ufw 关闭 ufw disable # To disable the firewall 开启 ufw enable # To ...

  8. Linux无法免密登录的原因

    一.免密登录的方法 下面操作是把/root/.ssh/id_dsa.pub文件内容追加到192.168.7.100系统中的/root/.ssh/authorized_keys文件中 # 创建并发送密钥 ...

  9. 第五次个人作业- Alpha项目测试

    这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求链接 团队名称 西柚排课王 测试人姓名 刘洋 测试人学号 201731062314 一.测试项目 测试项目 团队名 第二次Alpha发布博客 ...

  10. python笔记43-加解密AES/CBC/pkcs7padding

    前言 有些公司对接口的安全要求比较高,传参数的时候,不会明文的传输,先对接口加密,返回的数据也加密返回. 目前比较常见的加密方式是AES/CBC/pkcs7padding. AES五种加密模式 在AE ...