加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

链表倒置

发布时间:2020-12-14 05:32:16 所属栏目:百科 来源:网络整理
导读:#include iostream #includestdlib.h using namespace std; typedef struct node { ?int data; ?struct node *next; }node; node *creat() { ?node *head,*p,*s; ?int x,cycle; ?head=(node*)malloc(sizeof(node)); ?p=head; ?while(cycle)?? //cycle相当于

#include <iostream>
#include<stdlib.h>
using namespace std;
typedef struct node
{
?int data;
?struct node *next;
}node;
node *creat()
{
?node *head,*p,*s;
?int x,cycle;
?head=(node*)malloc(sizeof(node));
?p=head;
?while(cycle)?? //cycle相当于是否向下创建新结点标志位
?{
??cout<<"please input one number:"<<endl;
??cin>>x;
??if(x)
??{
??s=(node*)malloc(sizeof(node));
??s->data=x;
??p->next=s;
??p=s;
??}
??else
??{
??cycle=0;
??}
?}
?p->next=NULL;
?head=head->next;
?return (head);
}
void *print(node *head)
{
?node *p;
?p=head;
?while(p)
?{
??cout<<p->data<<endl;
??p=p->next;
?}
?return 0;
}
node *reverse(node *head)
{
?node *p1,*p2,*p3;
?p1=head,p2=p1->next;
?while(p2)
?{
??p3=p2->next;
??p2->next=p1;
??p1=p2;?//注意先后次序,必须先让P1指向p2,然后再让p2指向p3,否则p2会把p2消掉,直接跳出循环。
??p2=p3;

?} ?head->next=NULL; ?head=p1; ?return (head); } void main() { ?node *head; ?head=creat(); ?print(head); ?head=reverse(head); ?print(head); }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读