数据结构之将两个递增的有序链表合并为一个递增的有序链表
来源:互联网 发布:mysql中decode函数 编辑:程序博客网 时间:2024/06/04 18:31
数据结构之将两个递增的有序链表合并为一个递增的有序链表
标签(空格分隔): 学习笔记 数据结构
题目
将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。
合并链表
void MergerLinkList(LinkList La,LinkList Lb,LinkList Lc){ LinkList p = La->next,q = Lb->next,r = Lc; while(p &&q)//p和q都不为空时 { if(p->data < q->data) { r->next = p; r = p; p = p->next; } else if(p->data > q->data) { r->next = q; r = q; q = q->next; } else if(p->data == q->data) { r->next = p; q = q->next; } } if(p) //如果q遍历完了 r->next = p; //把p剩下的接到尾部 else //p遍历完了 r->next = q; //把q剩下的接到尾部}
原来的思路是在循环里判断链表是否遍历结束,结果写了好多用于判断的if语句,用了好长时间,代码冗长,后来网上搜索了别人的代码,是把遍历完成作为跳出循环的条件,然后判断是哪个链表循环完了,就把另一个链表剩下的结点接到尾部.因为这两个链表是递增的,剩下的就不用排序了.
else if(p->data == q->data) { r->next = p; q = q->next; }/*这里不需要加r = p;这个工作将会在不相等的时候做,即不等时r值变(移动)也不需要加p = p->next;p->data还要比较*/
原来判断是否遍历完成犯了一个低级错误,以后记住NULL(常量)一定要写左边
0 0
- 数据结构之将两个递增的有序链表合并为一个递增的有序链表
- 将两个递增的有序链表合并为一个递增的有序链表
- 将两个递增的有序链表合并为一个递增的有序链表(C语言编程实现)
- 将两个非递减的有序链表合并为一个非递增的有序链表
- 将两个有序递增的链表合成一个有序递增的链表
- 两个递增有序链表合并为一个链表
- 将两个非递减的有序链表合并为一个非递增的有序链表(C语言编程实现)
- 合并两个有序递增的链表,使得合并后新链表还是有序的
- 将两个递增的有序链表合并,不分配额外的空间
- 将一个递增和递减的有序链表,用原空间合并成递增有序的链表-O(n)复杂度
- 写程序。设ha和hb分别是两个带头结点的非递减有序单链表的头指针,试设计算法,将这两个有序链表合并成一个非递增有序的单链表。要求使用原链表空间,
- 合并两个单调递增的链表,使得合并后的链表也是有序
- 数据结构杂记——两个递增有序的单链表合并
- 合并两个递增链表为一个递增链表
- 合并两个有序的链表为有序链表
- 9、单链表的合并,两个有序单链表,合并为一个有序链表。
- 有序的合并两个有序链表
- 将两个递增有序的单链表合并成一个递减有序的单链表,利用原结点空间
- Linux I/O 调度方法
- MySQL存储过程详解
- spring常见问题
- 近世代数【第一章 群】2 子群
- leetcode:Binary Tree Inorder Traversal
- 数据结构之将两个递增的有序链表合并为一个递增的有序链表
- 【Android开发】范例2-实现带图标的ListView
- iOS开发拓展篇-XMPP简单介绍
- 【H5笔记】HTML5autio元素使用
- PhpExcel中文帮助手册|PhpExcel使用方法
- 如何实现android手机摄像头的的自动对焦
- 分布式系列 - dubbo服务telnet命令
- 抛硬币问题
- IRQL与内存分页