♬.无音.♪♬ 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 请问为什么我配置IPsec后PC1 ping不通 PC2,抓包出来数据包也并没有被加密
  • ¥200 求博主教我搞定neo4j简易问答系统,有偿
  • ¥15 nginx的使用与作用
  • ¥100 关于#VijeoCitect#的问题,如何解决?(标签-ar|关键词-数据类型)
  • ¥15 一个矿井排水监控系统的plc梯形图,求各程序段都是什么意思
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要