首页 > 代码库 > 单链表逆序
单链表逆序
非常简单,就当练个手吧
1 //单链表逆序问题,其实很容易的,就是把指针指向给变一下,注意的几个问题 2 //(1)如果就一个元素,不算头结点,直接返回 3 //(2)注意头结点最后要单独处理问题 4 #include <iostream> 5 using namespace std; 6 7 typedef struct linknode{ 8 int val; 9 linknode * next;10 }node,*list; //加typedef说明node和list是类型,否则只是一个struct的变量11 12 void reverse(list head)13 {14 if(head==NULL||head->next==NULL||head->next->next==NULL)15 return;16 node * p=head->next;17 node * q=p->next;18 node * t;19 p->next=NULL;20 while(q!=NULL)21 {22 t=q->next;23 q->next=p;24 p=q;25 q=t;26 }27 head->next=p;28 }29 list createlist()30 {31 int data;32 list head=new node;33 head->val=0;34 head->next=NULL;35 node * p=head;36 while(cin>>data)37 {38 node * tmp=new node;39 tmp->val=data;40 tmp->next=NULL;41 p->next=tmp;42 p=tmp;43 }44 return head;45 }46 47 int main()48 {49 node * head=createlist();50 reverse(head);51 node *p=head->next;52 while(p)53 {54 node *q=p->next;55 cout<<p->val<<" ";56 delete p;57 p=q;58 }59 cout<<endl;60 system("pause");61 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。