倚天照海花无数,流水高山心自知。
这说法是错误的,经过验证,仍然是反向的
以下是验证代码:
/* 带头接点*/
#include "Stdio.h"
#include "Conio.h"
typedef int type;
typedef struct Node
{
type info;
struct Node *next;
}Node;
void Create(Node *L,int num)
{ /*正向创建链表*/
int i;
Node *p,*q;
Node *s=L;
L=(Node *)malloc(sizeof(Node));
p=(Node *)malloc(sizeof(Node));
printf("Please input the element you want:");
scanf("%d",&p->info);
p->next=NULL;
L->next=s->next=p;
q=p;
for (i=1;i<num;i++)
{
p=(Node *)malloc(sizeof(Node));
printf("Please input the element you want:");
scanf("%d",&p->info);
p->next=NULL;
q->next=p;
q=p;
}
}
void print_link_list(Node *head,Node *root)
{
if(head->next==NULL)
{
printf("%5d-->",head->info);
return;
}
else
{
print_link_list(head->next,root);
if (head==root)
return;
printf("%5d-->",head->info);
}
}
int main(void)
{
Node La;
Create(&La,5);
print_link_list(&La,&La);
getch();
return 0;
}
你已经将代码改了,肯定是反向啦,你看看楼主的代码,另外,你创建单链表的用的变量太多了,而且根本没有必要弄两个头结点