我沒有在2年內採取了CS類我想不通爲什麼這個簡單的鏈表是腐敗:爲什麼這個C鏈表損壞?
int exists(linkedlist *list, int val) {
if(list == NULL)
return 0;
if(list->value == val)
return 1;
return exists(list->next, val);
}
當我嘗試執行exists(list,33);
列表中的第一個值被改寫爲33.我被迫使用迭代的方法,並得到程序的工作,但是這個錯誤,因爲這似乎是一個有效的解決方案。爲什麼它不起作用?
(注:創建節點我總是設置list->next = NULL;
)
你確定你的代碼顯示'lists-> value == val' not'lists-> value = val'嗎? – nmichaels 2011-04-06 13:48:14
完全不相關的注意:列表參數應該是const。 – unwind 2011-04-06 13:51:57
@unwind:不完全無關,我懷疑。 :) – 2011-04-06 13:54:13