如何对单链表进行复制

如何对单链表进行复制,第1张

/*复制一个单链表*/

struct letter *copy(struct letter *head,struct letter *cop)

{

struct letter *p1,*p2,*p

p1=head

p=(struct letter*)malloc(LEN) /*p用于指向新开辟的节点*/

p2=cop=p

while(p1->next!=NULL)

{p2->let=p1->let

p1=p1->next

p = (struct letter*)malloc(LEN)

p2->next=p

p2=p2->next

}

p2->let=p1->let

p2->next=NULL

return (cop)

}

要看具体要求,如果仅仅是加在另一个链表后面,不考虑排序,可以直接建立一个新链表,把链表的内容复制到新链表,然后再把新链表接到非空链表后,你都没给具体数据结构,所以代码没法写,思路是这样

设链表节点结构体为Node

Node* copylist(Node* L)

{

Node *h, *a

if(L == NULL)

return NULL

h = a = (Node*)malloc(sizeof(Node))

while(1)

{

a.数据成员 = L.数据成员

if(L->next != NULL)

{

L = L->next

a->next = (Node*)malloc(sizeof(Node))

a = a->next

}

else

{

a->next = NULL

break

}

}

return h

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7191610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存