您的位置:首页 > 其它

文章标题

2016-05-11 17:03 225 查看
输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据。

输入

第一行输入整数N;;

第二行依次输入N个整数,逆序建立单链表。

输出

依次输出单链表所存放的数据。

示例输入

10

11 3 5 27 9 12 43 16 84 22

示例输出

22 84 16 43 12 9 27 5 3 11

题解:逆序建链表我的理解就是把新生成的节点插入到head节点和head->next节点之间

#include<bits/stdc++.h>

using namespace std;

struct node

{

int data;

struct node *next;

};

int main()

{

int x,n,i;

cin>>n;

struct node *head,*tail,*p,*q;

head=new struct node();

head->next=NULL;

tail=head;

p=new struct node();

for(i=1;i<=n;i++)

{

cin>>x;

p->data=x;

p->next=head->next;//逆序过程,仔细理解,就是一个插入的过程,head->next保存着它的下一个节点,新生成的节点p,就把head节点的下一个节点的**地址**放到p的next指针域内,然后把p节点和head节点连接在一起

head->next=p;

p=new struct node();

}

for(p=head->next;p!=NULL;p=p->next)

{

cout<<p->data<<" ";

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: