题目:

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

示例:

输入: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. 关于DataX

    1. 关于DataX 1.1. 前言 为什么写这篇文章,因为初出茅庐的时候,曾经遇到的一个面试官就是DataX的作者之一,而当时我还偏偏因为业务需求做了个数据库的同步工具,我当时不知道他做过这么专业的 ...

  2. Spring Boot加载application.properties配置文件顺序规则

    SpringApplication会从以下路径加载所有的application.properties文件: 1.file:./config/(当前目录下的config文件夹) 2.file:./(当前 ...

  3. 【python】多任务(2. 进程)

    进程间通信 Queue import multiprocessing def download_from_web(q): # 模拟从网上下载数据 data = [11, 22, 33, 44] for ...

  4. MySQL 触发器学习-markdown->html 格式测试

    <!doctype html>触发器 figure:first-child { margin-top: -20px; } #write ol, #write ul { position: ...

  5. JavaScript一些对象。

    Function对象: 1.创建方式: function f(a) { alert(a); } var f=function(a){ alert(a); } 2.方法: 3.属性: 1.length: ...

  6. Jmeter场景设置与监听

    目录 Jmeter场景设置 场景运行 Jmeter测试监控 Samples:取样器运行次数(提交了多少笔业务). Jmeter场景设置 场景的概念: 场景是用来尽量真实模拟用户操作的工作单元,场景设计 ...

  7. Docker搭建Zentao(禅道)

    禅道搭建方式有很多种,可参考官方文档搭建,这里介绍的是参考官方文档以docker方式搭建. 禅道内部默认会自动安装mysql数据库. 一.下载地址 禅道开源版:   http://dl.cnezsof ...

  8. 基于TCP协议的大文件传输(粘包问题处理)

    基于TCP的大文件上传服务端实现 # 服务端 # -*- coding: utf-8 -*- from socket import * import json, struct server = soc ...

  9. 阿里巴巴Java开发手册(华山版).pdf

    https://github.com/alibaba/p3c/blob/master/阿里巴巴Java开发手册(华山版).pdf

  10. DecimalField的使用

    DecimalField类DecimalField(max_digits =无,decimal_places =无[,**选项])固定精度的十进制数,在Python中表示一个 十进制的实例.有两个必需 ...