实现两个有序的链表合并为一个有序链表

将两个有序的链表通过归并的形式合并为一个有序的链表

#include<iostream>
using namespace std;
class node{
public:
    int value;
    node* next;
    node(){}
    node(int value){
        this->value=value;
        this->next=NULL;
    }
    node(int value, node* next){
        this->value=value;
        this->next=next;
    }
};
int main(){
    node* list1=new node(1);
    list1->next=new node(3, new node(5));  // 1,3,5
    node* list2=new node(0, new node(4, new node(8)));  // 0,4,8
    node* result=new node();
    node *p3=result, *p1=list1, *p2=list2;
    for(; p1!=NULL && p2!=NULL; )
        if(p1->value<p2->value){
            p3->next=p1;
            p3=p3->next;
            p1=p1->next;
        }else{
            p3->next=p2;
            p3=p3->next;
            p2=p2->next;
        }
    for(; p1!=NULL; ){
            p3->next=p1;
            p3=p3->next;
            p1=p1->next;
    }
    for(; p2!=NULL; ){
            p3->next=p2;
            p3=p3->next;
            p2=p2->next;
    }
    result=result->next;
    while(result!=NULL){
        cout<<result->value<<"\t";
        result=result->next;
    }
    return 0;
}

作者原创,如需转载及其他问题请邮箱联系:lwqiang_chn@163.com
个人网站:https://www.myqiang.top

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 知识点 链...
    凌霄文强阅读 317评论 0 2
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 6,671评论 0 13
  • 题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)...
    凌霄文强阅读 503评论 0 2
  • 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指...
    凌霄文强阅读 189评论 0 1
  • 何颖颖读书打卡 坚持读书第95天 高校教师 201—202页 有感:当一个人感觉到无能为力时,他会变得目中无人和充...
    何颖颖h阅读 170评论 0 0

友情链接更多精彩内容