#include<iostream>

struct node{
int payload;
node* next;
node(int payload){this->payload=payload;next=nullptr;}
}; void bianli(node* head){
node* iterator = head;
while(iterator){
std::cout << iterator->payload << " ";
iterator = iterator->next;
}
std::cout<<" "<<std::endl;
} class linkedlist{
node* head,*tail;
public:
linkedlist():head(nullptr),tail(nullptr){};
void push_back(int value){
if(empty()){
head = tail = new node(value);
}else{
tail->next = new node(value);
tail = tail->next;
}
} int front(){
if(empty()){
throw "The list is empty";
}
return head->payload;
}
void pop_front(){
if(empty()){
throw "The list is empty";
}
node* first_node = head;
head = head->next;
delete first_node;
}
bool empty(){
return head==nullptr;
}
void output(){
node* iterator = head;
while(iterator){
std::cout << iterator->payload << " ";
iterator = iterator->next;
}
std::cout << std::endl;
}
}; linkedlist merge(linkedlist a,linkedlist b){
linkedlist result ;
while(!a.empty() || !b.empty()){
if(a.empty()){
result.push_back(b.front());
b.pop_front();
}else if(b.empty()){
result.push_back(a.front());
a.pop_front();
}else if(a.front() > b.front()){
result.push_back(b.front());
b.pop_front();
}else{
result.push_back(a.front());
a.pop_front();
}
}
return result;
} int main(){ linkedlist a,b;
a.push_back();
a.push_back();
a.push_back();
a.push_back(); b.push_back();
b.push_back();
b.push_back();
b.push_back();
b.push_back();
b.push_back(); linkedlist result = merge(a,b);
result.output();
system("pause");
return ;
}

合并两个排好序的链表(c++)的更多相关文章

  1. Python 实现把两个排好序的的列表合并成一个排序列表

    列表是升序的 # -*- coding: utf-8 -*- # 合并两个排序的数组 def merge_list(a, b): if not a: return b if not b: return ...

  2. 面试题26:合并k个排好序的单链表

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. c ...

  3. Python实现两已知排好序的列表合并成一个排好序的列表

    #方法0.5--- lst1 = [1, 3, 7, 9, 12] lst2 = [4, 8, 9, 13, 15, 19] def merge(a, b): c = [] h = j = 0 whi ...

  4. LeetCode OJ:Remove Duplicates from Sorted List (排好序的链表去重)

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  5. 6.5 k个已排好序链表合并为一个排序链表

    1 建立链表(带哨兵位的)2 建立最小堆方法3 合并已排好序的k个链表 typedef int DataType; //建立链表 class Link { private: struct Node { ...

  6. [Leetcode] Merge two sorted lists 合并两已排序的链表

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

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

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

  8. [剑指offer] 14. 链表中倒数第K个节点+翻转+逆序打印+合并两个排序链表 + 链表相交(第一个公共节点) (链表)

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路:  两个指针,起始位置都是从链表头开始,第一个比第二个先走K个节点,当第一个走到链表尾时,第二个指针的位置就是倒数第k个节点.(两指针始终相 ...

  9. Java 合并两个有序链表

    编程实现合并两个有序(假定为降序)单链表的函数,输入为两个有序链表的头结点,函数返回合并后新的链表的头节点, 要求:不能另外开辟新的内存存放合并的链表. 递归方式: /* * 递归方式 */ publ ...

随机推荐

  1. PHP数据类型

    在PHP中,一共支持8种数据类型:整型,浮点型,布尔型,字符串型,数组,对象,空类型(NULL),资源型 标量类型 int(integet)整数类型 整型数据:在内存中占4个字节,也就是32个bit位 ...

  2. js模版解析

    function JzRender(tpl, data) { // 模版解析 data是对象则返回字符串,是数组则返回字符串数组 if (data instanceof Array) { var s ...

  3. JavaScript简介及示例

    JavaScript简介及使用 一.简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛 ...

  4. HTML5中与页面显示相关的API

    1.HTML5中与页面显示相关的API 在HTML5中,增加了几个与页面显示相关的API,其中一个是Page Visibility API Page Visibility API  是指当页面变为最小 ...

  5. 施耐德Sepam 40系列备自投逻辑

    1# 主供: VL1= NOT PVTS_1_3 V1 = VL1 AND P59_1_7 AND P59_1_8 AND P59_1_9VL2 = VL1 AND I12 AND I21 AND I ...

  6. Mysql 数据库创建基本步骤

    1.创建数据库 create database school; 2.使用数据库 Use school; 3.创建用户 create user jame@localhost identified by ...

  7. UDP发送和接收

    发送函数 public bool udpSend(string ip, int port, byte[] data) { Socket socket = new Socket(AddressFamil ...

  8. maven项目管理构建

    准备工作 在eclipse配置maven之前需要我们做好准备工作,如下: 1. 安装jdk 2. 已安装好 maven,将maven配置成功 3. 下载Eclipse,解压缩安装完成,建立工作空间.  ...

  9. SDH误码仪MP1570A的自动化

    MP1570A是日本安立公司的用于SDH测试的误码仪. 1.MP1570A的自动化测试场景和原理 任意测试PC--(telnet)-->测试PC(Tcl Interrupt)-->SIG_ ...

  10. windows7 编译boost1.54

    先去下载boost1.54 for windows原码.原来有个安装工具现在已经停止维护了,我试了旧版,已经安装不了. 这是它们的网站:http://www.boostpro.com/download ...