My List 是通过这两个结构实现的。第一个包含列表中的项目,而第二个包含列表本身。
typedef Employee Item;
typedef struct ListNodeTag {
Item item;
struct ListNodeTag *next;
} ListNode;
typedef struct {
int size;
ListNode *first;
} List;
我正在尝试使用以下递归函数来反转列表的内容,但是,一旦列表中有多个项目,我就会遇到分段错误。
void Reverse(List *L){
ListNode *q,*p;
q = L->first;
p = q->next;
if(p == NULL)
return;
Reverse(L);
q->next->next = q;
q->next = NULL;}
我认为问题在于,我没有将列表的成员作为函数参数传递,而是传递了指向列表本身的指针。我将如何更改此代码以使其在不传递不同参数的情况下工作?