我想要遞歸地反轉鏈接列表。我有這些結構:反轉列表導致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'參數。目前還不清楚你是如何試圖遵循鏈接的算法。您目前的計劃與此不相似。 –