2016 - 2024

感恩一路有你

c语言链表逆序输出 如何将单向链表逆序?

浏览量:1540 时间:2021-03-11 11:48:41 作者:admin

如何将单向链表逆序?

如果head节点是l,那么就有p=q=l/*p,q是指向head节点的两个指针*/while(p->next!=null)P=P->next/*让P指向键列表中要访问的最后一个节点*/while(1){while(Q->next!=P)q=q->next/*让q向后看以找到要打印的最后一个节点*/printf(%dn“,P->data)P=q/*P向前移动一个*/q=L/*q也指头节点*/if(P=L)/*access finished exit*/break}你可以参考它

typedef struct listnode{

listnode*next

element data

}listnode,*plist

这是三种不同的单列逆序算法,两个递归和一个非递归

plist reverselist(plist head){

]if(!Head |(Head->next))

return Head

pList ph=ReverseList(Head->next)

Head->next->next=Head

Head->next=NULL

return ph

}

pList ReverseList(pList Head,pList&tail){

if(!头| |!(head->next){

tail=head

return head

}

pList pt

pList ph=ReverseList(head->next,pt)

pt->next=head

head->next=NULL

tail=head

return ph

}

pList reverselistunrec(pList head){

if(!头| |!(head->next))

返回head

pList h=NULL,h1=head

而(head){

h1=head->next

head->next=h

h=head

head=h1

}

返回h

}

c语言链表逆序输出 单链表逆序输出 单向链表逆序

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。