#include<stdio.h>
#include<stdlib.h>
typedef struct LNode LNode;
typedef struct LNode *list;
typedef struct LNode{
int data;
LNode *next;//指向下一个节点
}LNod,*list;
LNode*getelem(list L,int i){
if(i<0)
return NULL;
LNode *p;
int j=0;
p=L;
while(p!=NULL&&j<i){
p=p->next;
j++;
}
return p;
}
int main(){
int a,b,c;
list L,m;
LNode*s,*r=L;
L=(list)malloc(sizeof(LNode));
L->next=NULL;//初始化
scanf("%d\n",&a);
for(int i=0;i<a;i++){
scanf("%d",&b);
s=(LNode*)malloc(sizeof(LNode));
s->data=b;
r->next=s;
r=s;
}
r->next=NULL;
scanf("%d",&c);
c=a-c+1;
m=getelem(L,c);
printf("%d",m->data);
}
这是我的代码,求链表的倒数第m个元素,请问哪里错了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- CSDN专家-天际的海浪 2021-10-10 00:58关注
要在为 L 分配空间之后再让 r 指向L的地址
L=(list)malloc(sizeof(LNode));
r=L;
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)#include<stdio.h> #include<stdlib.h> typedef struct LNode LNode; typedef struct LNode *list; typedef struct LNode{ int data; LNode *next;//指向下一个节点 }LNod,*list; LNode*getelem(list L,int i){ if(i<0) return NULL; LNode *p; int j=0; p=L; while(p!=NULL&&j<i){ p=p->next; j++; } return p; } int main(){ int a,b,c; list L,m; LNode*s,*r; L=(list)malloc(sizeof(LNode)); r=L; L->next=NULL;//初始化 scanf("%d\n",&a); for(int i=0;i<a;i++){ scanf("%d",&b); s=(LNode*)malloc(sizeof(LNode)); s->data=b; r->next=s; r=s; } r->next=NULL; scanf("%d",&c); c=a-c+1; m=getelem(L,c); printf("%d",m->data); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么