您的位置:首页 > 移动开发

请修改append函数,利用这个函数实现

2014-07-19 01:18 351 查看
.请修改append函数,利用这个函数实现(链表):

两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5

另外只能输出结果,不能修改两个链表的数据。

//coder:LEE

//20120307

#include<iostream>

#include<cassert>

using namespace std;

struct List

{

int data;

List *next;

};

void Init(List *&p,int starti)

{

List *pCur;

for (int i=starti;i<starti+3;i++)

{

List *pNext=new List();

pNext->data=i;

pNext->next=NULL;

if(i==starti)

{

p=pNext;

pCur=p;

}

else

{

pCur->next=pNext;

pCur=pNext;

}

}

}

void Print(List *p)

{

while(p)

{

cout<<p->data<<" ";

p=p->next;

}

cout<<endl;

}

void Append(List *pHead1,List *pHead2)

{

assert(pHead1);

assert(pHead2);

while(pHead1&&pHead2)

{

int value1=pHead1->data;

int value2=pHead2->data;

if (value1<value2)

{

cout<<value1<<" ";

pHead1=pHead1->next;

}

else if (value1>value2)

{

cout<<value2<<" ";

pHead2=pHead2->next;

}

else

{

cout<<value1<<" ";

pHead1=pHead1->next;

pHead2=pHead2->next;

}

}

while(pHead1)

{

cout<<pHead1->data<<" ";

pHead1=pHead1->next;

}

while(pHead2)

{

cout<<pHead2->data<<" ";

pHead2=pHead2->next;

}

}

int main()

{

List *head1;

Init(head1,1);

List *head2;

Init(head2,2);

Print(head1);

Print(head2);

Append(head1,head2);

return 0;

}

阿里巴巴:

已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。使用非递归方法以及递归方法

。answer:
http://blog.sina.com.cn/s/blog_690d24710100tx6g.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: