#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
int data;
struct LNode* next;
}LinkNode;
void CreateList(LinkNode*& l, int a[], int n)
{
LinkNode* s,* r;
r = l;
for (int i = 0;i < n;i++)
{
s = (LinkNode*)malloc(sizeof(LinkNode));
s->data = a[i];
r->data = s->data;
r->next = s;
s->next = l;
r = s;
}
}
void DispList(LinkNode*& l, int n)
{
LinkNode* p = l;
int j = 0;
while (j<16)
{
printf("%d ", p->data);
p = p->next;
/if (p->next == l)
{
p = p->next;
}/
j++;
}
}
void main()
{
int a[] = { 1,2,3,4,5,6,7,8 };
int n;
n = sizeof(a) / sizeof(a[0]);
LinkNode* l;
l = (LinkNode*)malloc(sizeof(LinkNode));
CreateList(l, a, n);
DispList(l, n);
}
输出是1 2 3 4 5 6 7 8 8 1 2 3 4 5 6 7
你说的是哪段啊?没看到你有p->next->next的代码啊
你是希望输出两段1到8吗?