概述
单链表逆序-----非递归
node * reverse(node *head)
{
node * cur,pnext,temp;
cur=head;
pnext=head-next;
while(cur != NULL )
{
temp=pnext->next; //保存pnext后面一个节点到temp
pnext->next=cur; //将pnext节点提到cur前面,这一步即实现了逆序
cur=pnext; //将cur节点指向逆序后的最前面节点
pnext=temp; //将pnext指向保存到temp中的节点,以便下次逆序
}
head->next=NULL; ;逆序完成后完成首尾指针指向
head=cur;
return head;
}
单链表排序----递归算法
node *reverse(node * head)
{
node *tail, newhead;
if(head == NULL || head->next == NULL)
return head;
tail=head->next;
newhead=reverse(head->next);
tail->next=head; //这一步实现逆序
//逆序后设置尾指针指向
head->next=NULL;
return newhead;
}
最后
以上就是笑点低缘分为你收集整理的单链表逆序算法的全部内容,希望文章能够帮你解决单链表逆序算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复