概述
单链表的逆置和反转一样都是将p1->p2->p3变成p3->p2->p1
1、单链表的逆置
先做一个p1->p2->p3,然后让p2->p1,再p1=p2,p2=p3向右循环
node * reverse(node %head)
{
node * p1,*p2,*p3;
if(head==NULL||head->next==NULL)
return head;
p1=head; head=p1;
p2=p1->next; p1->next=p2;
while(p2)
{
p3= p2->next; p2->next=p3;
p2-next=p1; p1->next=p2-next;
p1=p2;
p2=p3;
}
head->next=NULL;
head=p1;
return head;
}
2、单链表的排序升序
(1)面试宝典上通过计算链表的长度,然后通过冒泡排序的方法进行升序排列
node * sort(node *head)
{
node *p;
int n,temp;
p=head;
n=length(head);
for(int j=1;j<n;j++)
{
p=head;
for(int i=0;i<n-j;i++)
{
if(p->data>p->next->data)
{
temp=p->data;
p->data=p->next->data;
p->next->data=temp;
}
p=p->next;
}
}
return head;
}
(2)在不知道链表的长度的情况下,怎么来对链表进行排序
最后
以上就是不安菠萝为你收集整理的单链表的逆置\反转,单链表的排序升序,单链表排序降序的全部内容,希望文章能够帮你解决单链表的逆置\反转,单链表的排序升序,单链表排序降序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复