美文网首页
链表合并问题(一)

链表合并问题(一)

作者: Poemrain | 来源:发表于2017-10-19 00:59 被阅读0次

设计将两个递增有序带头结点链表合并为一个有序递减的链表


void MergeList(LinkList & La,LinkList & Lb){

LNode *r,*pa=La->next, *pb=Lb->next;

//分别是表La和Lb的工作指针

La->next = NULL;

//La作为结果链表的头指针,先将结果链表初始化为空

while(pa&&pb){

//当两链表均不为空时,循环

if(pa->data<=pb->data){

r=pa->next;

//r暂存pa的后继结点指针

pa->next=La->next;

La->next=pa;

//将pa结点链于结果表中,同时逆置

pa=r;

//恢复pa为当前待结点

}else{

r=pb->next;

//r暂存pb的后继结点指针

pb->next=La->next;

//将pb结点链于结果表中,同时逆置

La->next=pb;

//恢复pb为当前待结点

pb=r;

}

if(pa)

pa=pb;

//通常情况下会剩一个链表非空,处理剩下的部分

while(pb){

//处理剩下的一个非空链表

r=pb->next;

//依次插入到La中

pb->next=La->next;

La->next=pb;

pb=r;

}

Free(Lb);

}

}

相关文章

  • 2018-12-26

    问题列表 合并两个有序链表 合并K个排序链表 合并区间 插入区间 问题与反馈 总结与收获 多个有序链表的合并,类似...

  • 合并两个有序单链表

    一、问题描述 给定两个单链表,都是递增有序的,将它们合并,使合并后的链表仍然有序。 二、解题思路 这种链表的问题我...

  • Swift - LeetCode - 合并K个排序链表

    题目 合并K个排序链表 问题: 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 解题思路:...

  • 链表合并问题(一)

    设计将两个递增有序带头结点链表合并为一个有序递减的链表 void MergeList(LinkList & La,...

  • 44_递归的思想与应用(中)

    关键词:单链表的转置、单向排序链表的合并、汉诺塔问题、全排列问题 0. 单链表的转置 1. 单向排序链表的合并 2...

  • Swift - LeetCode - 合并两个有序链表

    题目 合并两个有序链表 问题: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节...

  • leetcode023-合并k个有序链表

    问题描述 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 解答 方案1:根据合并两...

  • leecode刷题(27)-- 合并k个排序链表

    leecode刷题(27)-- 合并k个排序链表 合并k个排序链表 合并 k 个排序链表,返回合并后的排序链表。请...

  • 算法分析与设计(三)——合成K个排序链表

    一、问题描述 合并 ķ 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入:[1-> 4...

  • 链表题目合集

    23. 合并K个升序链表 给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并...

网友评论

      本文标题:链表合并问题(一)

      本文链接:https://www.haomeiwen.com/subject/knpyuxtx.html