我有一个代码片段来递归地反转链接列表
struct node *Reverse_List(struct node *p)
{
if (p->next == NULL) {
head = p;
return;
}
p = Reverse_List(p->next); ----> why this is wrong to get the value into pointer p ?
struct node *ptr1 = p->next;
p->next = ptr1->next;
ptr1->next = p;
}
此代码与"Reverse_List(p->next);"配合良好。但是如果我在指针p中取它的返回值(如代码片段中所指出的),它会给我分段错误。
代码的第一行定义了一个函数,期望返回一个指针。
struct node *Reverse_List(struct node *p)
你需要返回值来进行递归调用。
p = Reverse_List(p->next); ----> why this is wrong to get the value into pointer p ?
但是在函数体中没有返回任何东西。