我不明白这个递归代码的含义。它是否检查连续两个节点中的任何两个值是否相同?
bool has_repeats(element_t *e)
{
if (e == NULL)
return false;
if (contains_value(e->next, e->val))
return true;
return has_repeats(e->next);
}
提前感谢您的帮助!
答案 0 :(得分:3)
是的,通过回答您自己的问题,您知道自己在说什么!使用下一个节点检查当前节点。如果它们相同则返回true
,否则它会递归回调自身return has_repeats(e->next);
。
我想这有助于我们了解contains_value(x, y)
实际上做了些什么。正如@Ben评论的那样,很可能contains_value(x,y)
可能会检查列表中的所有值。