数据结构-1 带头结点的链表合并

Posted learn-excel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构-1 带头结点的链表合并相关的知识,希望对你有一定的参考价值。

 

 

 技术图片

 

List Merge( List L1, List L2 ){
struct Node *h,*p,*l1,*l2;
h = (struct Node*)malloc(sizeof(struct Node));
h->Next = NULL;
p = h;
l1 = L1->Next;
l2 = L2->Next;
while(l1!=NULL && l2!=NULL){
if(l1->Data > l2->Data){
p->Next = l2;
p = l2;
l2 = l2->Next;
}
else if(l1->Data <= l2->Data){
p->Next = l1;
p = l1;
l1 = l1->Next;
}
//else{
// p->Next = l1;
// p = l1;
// l1 = l1->Next;
// l2 = l2->Next;
//}
}
while(l1==NULL && l2!=NULL){
p->Next = l2;
p = l2;
l2 = l2->Next;
}
while(l1!=NULL && l2==NULL){
p->Next = l1;
p = l1;
l1 = l1->Next;
}
p->Next = NULL;
L1->Next = NULL;
L2->Next = NULL;

return h;
}
注意:
1. 链表合并以后,相同的元素应该都放在链表中,而不应该保存为一个值。
2.表头结点必须新申请一个空间。

 

以上是关于数据结构-1 带头结点的链表合并的主要内容,如果未能解决你的问题,请参考以下文章

数据结构第五章:带头结点的链表

数据结构与算法20170804

数据结构第四章:带头节点的拆链表

链表习题-将带头结点的链表进行逆置

数据结构第三章:不带头结点的单链表操作

带头结点的链表