//双向链表的反转
struct List
{
int value;
struct List *last,*next;
};
//反转双向
List *reverse(List *head)
{
List *cur=head,*pre=NULL;
while (cur!=NULL)
{
List *nxt=cur->next;//首先保存cur的下一节点到nxt,否则会失去下一节点的指向
cur->next=pre;//指向前一节点,当cur为头节点时,last指向空
cur->last=nxt;//指向下一个节点
pre=cur;//反转完成,指针后移
cur=nxt;//后移cur
}
return pre;
}
//反转单向
List *reversedanxiang(List *head)
{
List *cur=head,*pre=NULL;
while(cur!=NULL)
{
List *nxt=cur->next;
cur->next=pre;
pre=cur;
cur=nxt;
}
return pre;
}
双链表的反转
最新推荐文章于 2024-08-25 17:09:58 发布