♬.无音.♪♬ 2022-01-13 14:18 采纳率: 75%
浏览 51
已结题

逆置后为什么与预期输出的结果不同,应该怎么改?顺便能解释一下逆置函数的原理吗,不是太懂

#include <stdio.h>
#include <stdlib.h>

typedef struct node {
int data;
struct node next;
}Node;
Node
CreatList(int n)
{
Node *head,p,end;
head=(Node
)malloc(sizeof(Node));
end=head;
for(int i=0;i<n;i++)
{
p=(Node*)malloc(sizeof(Node));
scanf("%d",&p->data );
end->next=p;
end=p;
}
end->next=NULL;
return head;
}
Node
ReverseList(Node *head)
{
Node *newHead;
if(head==NULL||head->next==NULL)
return head;
newHead=ReverseList(head->next);
head->next->next=head;
head->next=NULL;
return newHead;
}
void ShowList(Node *phead)
{
for(phead=phead->next;phead!=NULL;phead=phead->next)
printf("%d ",phead->data);
printf("\n");
}
int main(void)
{
Node *phead;
int n;
scanf("%d",&n);
phead = CreatList(n);
printf("链表逆置前的数据:\n");
ShowList(phead);
phead = ReverseList(phead);
printf("链表逆置后的数据:\n");
ShowList(phead);
return 0;
}

img

  • 写回答

2条回答 默认 最新

  • MagicKingC 2022-01-13 14:44
    关注

    兄弟你的基础有点差啊,函数放回那,你定义返回的是一个变量,实际返回值是变量指针,还有链表结构定义都有问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 创建了问题 1月13日

悬赏问题

  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭