42.请修改append函数,利用这个函数实现(链表):

原创 2012年03月22日 19:48:33
42.请修改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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

算法习题42:修改append函数,求链表并集

请修改append函数,利用这个函数实现: 两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5 另外只能输出结果,不能修改两个链表的数据。 -------------...
  • ylf13
  • ylf13
  • 2013-11-04 12:49
  • 558

请修改append 函数,利用这个函数实现:两个非降序链表的并集,1->2->3 和2->3->5 并为1->2->3->5 另外只能输出结果,不能修改两个链表的数据。

不知道啥意思,用JAVA中Linkedlist实现链表,代码如下:

append函数 两非递减链表的合并

#include using namespace std; typedef struct Node { int data; Node *next; }lnode,*list; list listi...

Erlang list的++操作和append函数的底层实现

当提到Erlang中list的++操作符时,我们常会想到它的性能问题。 有些人知道++操作比较耗时,就改用函数append来代替。 到底++操作和append函数之间有什么区别? 我们来查看一下它...

jquery html移动,复制,替换函数(append,clone,replaceWith等)

在做web前端的时候,我们经常会做一个特效,这个时候用到ajax来进行无刷新页面,来改变页面的内容,这个时候,我们就会对页面中的html进行添加,替换等,在接触jquery的这些html操作函数之前,...
  • micool
  • micool
  • 2012-02-17 11:59
  • 1880

关于链表的几个函数

链表的主函数

Linux网络协议栈--ip_append_data函数分析

开场白: 要分析这个函数原因有两个: 一个是前几天要写《Linux网络协议栈--UDP》结果卡在这个函数这了。 另外一个就是这个函数又是UDP报文必经之路,而且对其理解对于套接口中发送队列的理解...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)