题目内容:
将单链表每个元素的值改为该结点值加上后继结点值,若没有后继元素则保持不变。
例如,已知单链表为:2 4 10 6
则修改后为:6 14 16 6
输入输出说明:
输入:
6 //单链表元素个数
10 30 20 60 80 91 //正序输入单链表元素值
输出:
40 50 80 140 171 91 //修改后的单链表值
代码编辑:
#include <bits/stdc++.h>
using namespace std;
typedef struct node
{
int data;
struct node *next;
}Lnode,*LinkList;
void createList(LinkList &L)//创建链表
{
int n;
cin>>n;
LinkList p,q;
L=new Lnode;
p=L;
for(int i=0;i<n;i++)
{
q=new Lnode;
cin>>q->data;
p->next=q;
p=q;
}
p->next=NULL;
}
void out(LinkList L)//输出
{
LinkList p;
p=L->next;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
int main()
{
LinkList head;
createList(head);
LinkList p,q;
p=head->next;
q=p->next;
while(q!=NULL)
{
p->data+=q->data;
p=q;
q=p->next;
}
out(head);
return 0;
}