题目:单链表逆转
#include
#include
typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {
ElementType Data;
PtrToNode Next;
};
typedef PtrToNode List;
List Read(); /* 细节在此不表 */
void Print( List L ); /* 细节在此不表 */
List Reverse( List L );
int main()
{
List L1, L2;
L1 = Read();
L2 = Reverse(L1);
Print(L1);
Print(L2);
return 0;
}
/* 你的代码将被嵌在这里 */
List Reverse(List L)
{
List p, q, r;
if (L->Next == NULL)
return L;
if (L->Next->Next == NULL)
return L;
p = L->Next;
q = p->Next;
p->Next = NULL;
while (q != NULL)
{
r = q->Next;
q->Next = p;
p = q;
q = r;
}
L->Next = p;
}
函数没有返回值啊,L->Next = p;后面加上 return L;
不知道你这个问题是否已经解决, 如果还没有解决的话: int arr[3] = {1,2,3};
int*p = arr;
for(;p!=arr+3;p++){
printf("%d\n",*p);
}
return 0;
}