我想要递归地反转链接列表。我有这些结构:反转列表导致Seg错误
typedef Test test;
typedef struct Node {
test t;
struct Node *nxt;
} LNode;
typedef struct {
int size;
LNode *first;
} L;
其中Test是一个包含学生名称和等级(测试成绩)的结构。
void recursiveReverse(L * r) {
LNode * first;
first = r->first; //first node in list
reverseList(first);
}
void reverseList(LNode * first) {
LNode * rest;
rest = first->nxt;
reverseList(r,rest);
first->nxt->nxt = first;
first->nxt = NULL;
first = rest;
}
但是,我似乎在尝试这个时候得到一个段错误。我不允许更改函数recursiveReverse
的参数参数,我被告知必须调用另一个函数,并将其用作递归调用函数(我有)。任何帮助将非常感激。
如何进行递归结束了吗? –
从找到导致问题的最短列表(其中2或3个项目)开始。然后用调试器遍历代码,看看发生了什么问题。 – user3386109
它不完全清楚为什么你的reverseList需要'r'参数。目前还不清楚你是如何试图遵循链接的算法。您目前的计划与此不相似。 –