append
来源:互联网 发布:ipad画漫画软件 编辑:程序博客网 时间:2024/05/17 21:42
.请修改append函数,利用这个函数实现:
两个非降序链表的并集,1->2->3和2->3->5并为1->2->3->5另外只能输出结果,不能修改两个链表的数据。
#include <iostream>using namespace std;typedef struct Node{struct Node* next;int data;}Node,*LNode;Node* append(LNode p,LNode q){if(NULL==p)return q;if(NULL==q)return p;Node *head = NULL;if(p->data>q->data){head = q;q = q ->next;}else{head = p;p = p->next;}Node* cani = NULL;Node* r1 = head;Node* r = NULL;while(NULL!=p&&NULL!=q){ if(p->data>q->data){r = q;q = q->next;}else{if(p->data==q->data){r = p;p = p->next;cani = q;q = q->next;}else{r = q;q = q->next;}}if(NULL!=cani){delete cani;cani = NULL;}r1->next = r;r1 = r;}if(p!=NULL)r1->next = p;else{r1->next = q;}return head;}void print(LNode l){ while(l) { cout<<l->data<<" " ; l = l->next; } cout<<endl;}void create(LNode& l1,LNode& l2){int a1[]={1,2,3};int a2[]={2,3,4};Node* p,*q;l1 = new Node;l2 = new Node;l1->data = a1[0];l2->data = a2[0];p = l1;q = l2;for(int i = 1;i<3;i++){ Node* r1 = new Node; Node* r2 = new Node; r1->data = a1[i]; r2->data = a2[i]; p ->next = r1; q->next = r2; p = r1; q = r2;}p->next = NULL;q->next = NULL;}int main(){LNode l1=NULL;LNode l2=NULL; create(l1,l2);print(l1);print(l2);Node * head = append(l1,l2);print(head);return 0;}
- append
- append
- append
- append
- append
- Append Line
- 关于/*APPEND*/
- append小结
- append标签
- append 隐患
- wrap,append
- string::append
- Oracle append
- jquery append
- append.pl
- Oracle append
- insert /*+append */
- append 例子
- js也可以sleep
- linux网桥浅析
- 内存泄露
- Ext下拉框
- javaWeb 学习之旅(二)--------XML的使用方法
- append
- Java集合类详解
- wsdl2java : The attribute required is undefined for the annotation type XmlElementRef+super构造函数函数错误.
- C#打开文件
- 关于template
- uva_10881_Piotr's Ants (模拟,Sort)
- SMS0658B 段式液晶显示例程
- Highcharts翻译系列之十七:xAxis x轴的样式(一)
- 【ios游戏开发】分享share