我没有在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